PIXI.TextMetrics
class TextMetrics
The TextMetrics object represents the measurement of a block of text with a specified style.
let style = new PIXI.TextStyle({fontFamily : 'Arial', fontSize: 24, fill : 0xff1010, align : 'center'})
let textMetrics = PIXI.TextMetrics.measureText('Your text', style)
Constructor
new PIXI.TextMetrics(text: string, style: PIXI.TextStyle, width: number, height: number, lines: string[], lineWidths: number[], lineHeight: number, maxLineWidth: number, fontProperties: PIXI.IFontMetrics) → {}
Name | Type | Description |
---|---|---|
text | string |
the text that was measured |
style | PIXI.TextStyle |
the style that was measured |
width | number |
the measured width of the text |
height | number |
the measured height of the text |
lines | string[] |
an array of the lines of text broken by new lines and wrapping if specified in style |
lineWidths | number[] |
an array of the line widths for each line matched to |
lineHeight | number |
the measured line height for this style |
maxLineWidth | number |
the maximum line width for all measured lines |
fontProperties | PIXI.IFontMetrics |
the font properties object from TextMetrics.measureFont |
Summary
Properties from TextMetrics
number |
|
string |
|
number |
|
string |
|
PIXI.IFontMetrics |
|
number |
The measured height of the text. |
number |
The measured line height for this style. |
string[] |
An array of lines of the text broken by new lines and wrapping is specified in style. |
number[] |
An array of the line widths for each line matched to |
number |
The maximum line width for all measured lines. |
PIXI.TextStyle |
The style that was measured. |
string |
The text that was measured. |
number |
The measured width of the text. |
Methods from TextMetrics
boolean |
Overridable helper method used internally by TextMetrics, exposed to allow customizing the class's behavior. |
boolean |
Overridable helper method used internally by TextMetrics, exposed to allow customizing the class's behavior. |
void |
|
boolean |
Determines if char is a breaking whitespace. |
IFontMetrics |
|
PIXI.TextMetrics |
|
string[] |
Overridable helper method used internally by TextMetrics, exposed to allow customizing the class's behavior. |
Public Properties
static BASELINE_MULTIPLIER: number = 1.4
Baseline multiplier for calculate font metrics.
static BASELINE_SYMBOL: string = M
Baseline symbol for calculate font metrics.
static HEIGHT_MULTIPLIER: number = 2.00
Height multiplier for setting height of canvas to calculate font metrics.
static METRICS_STRING: string = |ÉqÅ
String used for calculate font metrics. These characters are all tall to help calculate the height required for text.
fontProperties: PIXI.IFontMetrics
The font properties object from TextMetrics.measureFont.
lines: string[]
An array of lines of the text broken by new lines and wrapping is specified in style.
lineWidths: number[]
An array of the line widths for each line matched to lines
.
Public Methods
static canBreakChars(_char: string, _nextChar: string, _token: string, _index: number, _breakWords: boolean) → {boolean}
Overridable helper method used internally by TextMetrics, exposed to allow customizing the class's behavior.
It allows one to determine whether a pair of characters should be broken by newlines For example certain characters in CJK langs or numbers. It must return a boolean.
Name | Type | Description |
---|---|---|
_char | string |
The character |
_nextChar | string |
The next character |
_token | string |
The token/word the characters are from |
_index | number |
The index in the token of the char |
_breakWords | boolean |
The style attr break words |
Type | Description |
---|---|
boolean |
whether to break word or not |
static canBreakWords(_token: string, breakWords: boolean) → {boolean}
Overridable helper method used internally by TextMetrics, exposed to allow customizing the class's behavior.
It allows one to customise which words should break Examples are if the token is CJK or numbers. It must return a boolean.
Name | Type | Description |
---|---|---|
_token | string |
The token |
breakWords | boolean |
The style attr break words |
Type | Description |
---|---|
boolean |
Whether to break word or not |
static clearMetrics(font: string) → {void}
Clear font metrics in metrics cache.
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
font | string |
<optional> |
'' |
font name. If font name not set then clear cache for all fonts. |
Type | Description |
---|---|
void |
static isBreakingSpace(char: string, _nextChar: string) → {boolean}
Determines if char is a breaking whitespace.
It allows one to determine whether char should be a breaking whitespace For example certain characters in CJK langs or numbers. It must return a boolean.
Name | Type | Attributes | Description |
---|---|---|---|
char | string |
The character |
|
_nextChar | string |
<optional> |
The next character |
Type | Description |
---|---|
boolean |
True if whitespace, False otherwise. |
static measureFont(font: string) → {IFontMetrics}
Calculates the ascent, descent and fontSize of a given font-style
Name | Type | Description |
---|---|---|
font | string |
String representing the style of the font |
Type | Description |
---|---|
IFontMetrics |
Font properties object |
static measureText(text: string, style: PIXI.TextStyle, wordWrap: boolean, canvas: HTMLCanvasElement | OffscreenCanvas) → {PIXI.TextMetrics}
Measures the supplied string of text and returns a Rectangle.
Name | Type | Attributes | Description |
---|---|---|---|
text | string |
The text to measure. |
|
style | PIXI.TextStyle |
The text style to use for measuring |
|
wordWrap | boolean |
<optional> |
Override for if word-wrap should be applied to the text. |
canvas | HTMLCanvasElement | OffscreenCanvas |
optional specification of the canvas to use for measuring. |
Type | Description |
---|---|
PIXI.TextMetrics |
Measured width and height of the text. |
static wordWrapSplit(token: string) → {string[]}
Overridable helper method used internally by TextMetrics, exposed to allow customizing the class's behavior.
It is called when a token (usually a word) has to be split into separate pieces in order to determine the point to break a word. It must return an array of characters.
// Correctly splits emojis, eg "🤪🤪" will result in two element array, each with one emoji.
TextMetrics.wordWrapSplit = (token) => [...token];
Name | Type | Description |
---|---|---|
token | string |
The token to split |
Type | Description |
---|---|
string[] |
The characters of the token |