@pixi/animate
Version:
PIXI plugin for the PixiAnimate Extension
1 lines • 12.6 kB
Source Map (JSON)
{"version":3,"file":"Text.mjs","sources":["../../src/animate/Text.ts"],"sourcesContent":["import { ColorMatrixFilter } from '@pixi/filter-color-matrix';\nimport { Text, TextStyleAlign } from '@pixi/text';\nimport { Graphics } from '@pixi/graphics';\nimport { Sprite } from '@pixi/sprite';\nimport { utils } from './utils';\n\n// Possible align values\nenum ALIGN_VALUES\n {\n center = 0,\n right = 1,\n left = -1\n}\n\n// Map of short names to long names\nconst STYLE_PROPS = {\n o: 'font', // TODO: deprecate in Pixi v4\n z: 'fontSize',\n f: 'fontFamily',\n y: 'fontStyle',\n g: 'fontWeight',\n i: 'fill',\n a: 'align',\n s: 'stroke',\n t: 'strokeThickness',\n w: 'wordWrap',\n d: 'wordWrapWidth',\n l: 'lineHeight',\n h: 'dropShadow',\n c: 'dropShadowColor',\n n: 'dropShadowAngle',\n b: 'dropShadowBlur',\n p: 'padding',\n x: 'textBaseline',\n j: 'lineJoin',\n m: 'miterLimit',\n e: 'letterSpacing',\n};\n\n/**\n * Check if a value is undefined, fallback to default value\n * @param value - The value to check\n * @param defaultValue - The default value if value is undefined\n * @return Either the value or the default value\n */\nfunction isUndefinedOr<T>(value: T, defaultValue: T): T\n{\n return value === undefined ? defaultValue : value;\n}\n\nexport class AnimateText extends Text\n{\n // **************************\n // Text methods\n // **************************\n\n /**\n * Setter for the alignment, also sets the anchor point\n * to make sure the positioning is correct.\n * @param align - Either center (0), right (1), left (-1)\n * @return This instance for chaining\n */\n public setAlign(align: 'center' | 'right' | 'left' | 0 | 1 | -1): this\n {\n if (typeof align === 'string')\n {\n align = ALIGN_VALUES[align];\n }\n this.style.align = ALIGN_VALUES[align] as TextStyleAlign || 'left';\n this.anchor.x = (align + 1) / 2;\n\n return this;\n }\n /**\n * Shortcut for `setAlign`.\n */\n public g = this.setAlign;\n\n /**\n * Set the style, a chainable version of style setter\n * @param style -\n * @return This instance for chaining.\n */\n // TODO: improve typing of style parameter - (needs ITextStyle interface to exist)\n public setStyle(style: any): this\n {\n // Replace short STYLE_PROPS with long names\n for (const k in STYLE_PROPS)\n {\n if ((style as any)[k] !== undefined)\n {\n (style as any)[(STYLE_PROPS as any)[k]] = (style as any)[k];\n delete (style as any)[k];\n }\n }\n this.style = style as any;\n\n return this;\n }\n /**\n * Shortcut for `setStyle`.\n */\n public ss = this.setStyle;\n\n /**\n * Initial setting of the drop shadow.\n * @param color - The color to set\n * @param angle - The angle of offset, in radians\n * @param distance - The offset distance\n * @return This instance for chaining\n */\n public setShadow(color: string | number, angle: number, distance: number): this\n {\n const style = this.style;\n\n style.dropShadow = true;\n\n // Convert color to hex string\n if (color && typeof color === 'number')\n {\n color = `#${color.toString(16)}`;\n }\n style.dropShadowColor = isUndefinedOr(color, style.dropShadowColor);\n style.dropShadowAngle = isUndefinedOr(angle, style.dropShadowAngle);\n style.dropShadowDistance = isUndefinedOr(distance, style.dropShadowDistance);\n\n return this;\n }\n /**\n * Shortcut for `setShadow`.\n */\n public sh = this.setShadow;\n\n // **************************\n // DisplayObject methods\n // **************************\n\n /**\n * Function to set if this is renderable or not. Useful for setting masks.\n * @param renderable - Make renderable. Defaults to false.\n * @return This instance, for chaining.\n */\n public setRenderable(renderable?: boolean): this\n {\n this.renderable = !!renderable;\n\n return this;\n }\n /**\n * Shortcut for `setRenderable`.\n */\n public re = this.setRenderable;\n\n /**\n * Shortcut for `setTransform`.\n */\n public t = super.setTransform;\n\n /**\n * Setter for mask to be able to chain.\n * @param mask - The mask shape to use\n * @return Instance for chaining\n */\n public setMask(mask: Graphics | Sprite): this\n {\n // According to PIXI, only Graphics and Sprites can\n // be used as mask, let's ignore everything else, like other\n // movieclips and displayobjects/containers\n if (mask)\n {\n if (!(mask instanceof Graphics) && !(mask instanceof Sprite))\n {\n if (typeof console !== 'undefined' && console.warn)\n {\n console.warn('Warning: Masks can only be PIXI.Graphics or PIXI.Sprite objects.');\n }\n\n return this;\n }\n }\n this.mask = mask;\n\n return this;\n }\n /**\n * Shortcut for `setMask`.\n */\n public ma = this.setMask;\n\n /**\n * Chainable setter for alpha\n * @param alpha - The alpha amount to use, from 0 to 1\n * @return Instance for chaining\n */\n public setAlpha(alpha: number): this\n {\n this.alpha = alpha;\n\n return this;\n }\n /**\n * Shortcut for `setAlpha`.\n */\n public a = this.setAlpha;\n\n /**\n * Set the tint values by color.\n * @param tint - The color value to tint\n * @return Object for chaining\n */\n public setTint(tint: string | number): this\n {\n if (typeof tint === 'string')\n {\n tint = utils.hexToUint(tint);\n }\n // this.tint = tint\n // return this;\n // TODO: Replace with DisplayObject.tint setter\n // once the functionality is added to Pixi.js, for\n // now we'll use the slower ColorMatrixFilter to handle\n // the color transformation\n const r = (tint >> 16) & 0xFF;\n const g = (tint >> 8) & 0xFF;\n const b = tint & 0xFF;\n\n return this.setColorTransform(r / 255, 0, g / 255, 0, b / 255, 0);\n }\n /**\n * Shortcut for `setTint`.\n */\n public i = this.setTint;\n\n /**\n * Set additive and multiply color, tinting\n * @param r - The multiply red value\n * @param rA - The additive red value\n * @param g - The multiply green value\n * @param gA - The additive green value\n * @param b - The multiply blue value\n * @param bA - The additive blue value\n * @return Object for chaining\n */\n public setColorTransform(r: number, rA: number, g: number, gA: number, b: number, bA: number): this\n {\n const filter = this.colorTransformFilter;\n\n filter.matrix[0] = r;\n filter.matrix[4] = rA;\n filter.matrix[6] = g;\n filter.matrix[9] = gA;\n filter.matrix[12] = b;\n filter.matrix[14] = bA;\n this.filters = [filter];\n\n return this;\n }\n /**\n * Shortcut for `setColor`.\n */\n public c = this.setColorTransform;\n\n protected _colorTransformFilter: ColorMatrixFilter;\n /**\n * The current default color transforming filter\n */\n public set colorTransformFilter(filter: ColorMatrixFilter)\n {\n this._colorTransformFilter = filter;\n }\n public get colorTransformFilter(): ColorMatrixFilter\n {\n return this._colorTransformFilter || new ColorMatrixFilter();\n }\n}\n"],"names":["ALIGN_VALUES"],"mappings":"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"}