125 lines
3.3 KiB
JavaScript
125 lines
3.3 KiB
JavaScript
"use strict";
|
|
|
|
/**
|
|
* Mixins for the PIXI.Text class.
|
|
* @memberof PIXI
|
|
* @class Text
|
|
*/
|
|
var p = PIXI.Text.prototype;
|
|
|
|
// Possible align values
|
|
var ALIGN_VALUES = ["center", "right"];
|
|
|
|
/**
|
|
* Setter for the alignment, also sets the anchor point
|
|
* to make sure the positioning is correct.
|
|
* @method PIXI.Text#setAlign
|
|
* @param {String} align Either, center, right, left
|
|
* @return {PIXI.Text} For chaining
|
|
*/
|
|
/**
|
|
* Shortcut for `setAlign`.
|
|
* @method PIXI.Text#g
|
|
* @param {String|int} align Either, center (0), right (1), left (-1)
|
|
* @return {PIXI.Text} For chaining
|
|
*/
|
|
p.setAlign = p.g = function (align) {
|
|
if (typeof align == "string") {
|
|
align = ALIGN_VALUES.indexOf(align);
|
|
}
|
|
this.style.align = ALIGN_VALUES[align] || "left";
|
|
this.anchor.x = (align + 1) / 2;
|
|
return this;
|
|
};
|
|
|
|
// Map of short names to long names
|
|
var STYLE_PROPS = {
|
|
o: 'font', // TODO: deprecate in Pixi v4
|
|
z: 'fontSize',
|
|
f: 'fontFamily',
|
|
y: 'fontStyle',
|
|
g: 'fontWeight',
|
|
i: 'fill',
|
|
a: 'align',
|
|
s: 'stroke',
|
|
t: 'strokeThickness',
|
|
w: 'wordWrap',
|
|
d: 'wordWrapWidth',
|
|
l: 'lineHeight',
|
|
h: 'dropShadow',
|
|
c: 'dropShadowColor',
|
|
n: 'dropShadowAngle',
|
|
b: 'dropShadowBlur',
|
|
p: 'padding',
|
|
x: 'textBaseline',
|
|
j: 'lineJoin',
|
|
m: 'miterLimit',
|
|
e: 'letterSpacing'
|
|
};
|
|
|
|
/**
|
|
* Set the style, a chainable version of style setter
|
|
* @method PIXI.Text#setStyle
|
|
* @param {Object} style
|
|
* @return {PIXI.Text} instance of text field
|
|
*/
|
|
/**
|
|
* Shortcut for `setStyle`.
|
|
* @method PIXI.Text#ss
|
|
* @param {Object} style
|
|
* @return {PIXI.Text} instance of text field
|
|
*/
|
|
p.setStyle = p.ss = function (style) {
|
|
// Replace short STYLE_PROPS with long names
|
|
for (var k in STYLE_PROPS) {
|
|
if (style[k] !== undefined) {
|
|
style[STYLE_PROPS[k]] = style[k];
|
|
delete style[k];
|
|
}
|
|
}
|
|
this.style = style;
|
|
return this;
|
|
};
|
|
|
|
/**
|
|
* Initial setting of the drop shadow.
|
|
* @method PIXI.Text#setShadow
|
|
* @param {String} [color="#000000"] The color to set
|
|
* @param {Number} [angle=Math.PI/4] The angle of offset, in radians
|
|
* @param {Number} [distance=5] The offset distance
|
|
* @return {PIXI.Text} For chaining
|
|
*/
|
|
/**
|
|
* Shortcut for `setShadow`.
|
|
* @method PIXI.Text#sh
|
|
* @param {String} [color="#000000"] The color to set
|
|
* @param {Number} [angle=Math.PI/4] The angle of offset, in radians
|
|
* @param {Number} [distance=5] The offset distance
|
|
* @return {PIXI.Text} For chaining
|
|
*/
|
|
p.setShadow = p.sh = function (color, angle, distance) {
|
|
var style = this.style;
|
|
style.dropShadow = true;
|
|
|
|
// Convert color to hex string
|
|
if (color !== undefined) {
|
|
color = "#" + color.toString(16);
|
|
}
|
|
style.dropShadowColor = isUndefinedOr(color, style.dropShadowColor);
|
|
style.dropShadowAngle = isUndefinedOr(angle, style.dropShadowAngle);
|
|
style.dropShadowDistance = isUndefinedOr(distance, style.dropShadowDistance);
|
|
return this;
|
|
};
|
|
|
|
/**
|
|
* Check if a value is undefined, fallback to default value
|
|
* @method isUndefinedOr
|
|
* @private
|
|
* @param {*} value The value to check
|
|
* @param {*} defaultValue The default value if value is undefined
|
|
* @return {*} The either the value or the default value
|
|
*/
|
|
var isUndefinedOr = function isUndefinedOr(value, defaultValue) {
|
|
return value === undefined ? defaultValue : value;
|
|
};
|
|
//# sourceMappingURL=Text.js.map
|