Пакет | flash.text.engine |
Класс | public final class TextBlock |
Наследование | TextBlock Object |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Класс TextBlock должен содержать один абзац, так как алгоритмы двунаправленности и разрывов строк в Юникод одновременно могут обрабатывать один абзац. Для приложений, создающих несколько абзацев текста, используйте язык разметки или анализ текста, чтобы разбить текст на абзацы и создать для каждого из них объект TextBlock.
Объект TextBlock сохраняет свое содержимое в свойстве content
, которое является экземпляром класса ContentElement. Так как невозможно создать экземпляр класса ContentElement, задайте для content
экземпляр одного из его подклассов: TextElement, GraphicElement или GroupElement. Используйте TextElement для чисто текстового содержимого, GraphicElement для изображений или графического содержимого и GroupElement для содержимого, в котором сочетаются объекты TextElement, GraphicElement и другие объект GroupElement. Подробные сведения об управлении форматированными фрагментами текста, встроенными фрагментами и графическими элементами см. описание класса ContentElement.
Создав экземпляр TextBlock и настроив его свойство content
, вызовите метод createTextLine()
, чтобы создать строки текста, являющиеся экземплярами класса TextLine
.
Связанные элементы API
GraphicElement
GroupElement
TextBaseline
TextElement
TextJustifier
TextLine
TextRotation
TabStop
Свойство | Определено | ||
---|---|---|---|
applyNonLinearFontScaling : Boolean
Указывает, что требуется улучшить внешний вид экрана за счет качества печати WYSIWYG («получаешь то, что видишь»). | TextBlock | ||
baselineFontDescription : FontDescription
Шрифт, который используется для определения базовых линий для всех строк, созданных из блока, независимо от их содержимого. | TextBlock | ||
baselineFontSize : Number
Размер шрифта, который используется для вычисления базовых линий для строк, создаваемых из блока. | TextBlock | ||
baselineZero : String
Задает, какая базовая линия находится в точке с координатой у=0 для строк, созданных из этого блока. | TextBlock | ||
bidiLevel : int
Указывает уровень встраивания двунаправленных абзацев для текстового блока. | TextBlock | ||
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
content : ContentElement
Хранит содержимое текстового блока. | TextBlock | ||
firstInvalidLine : flash.text.engine:TextLine [только для чтения]
Указывает первую строку в текстовом блоке, в котором значение свойства TextLine.validity не равно TextLineValidity.VALID. | TextBlock | ||
firstLine : flash.text.engine:TextLine [только для чтения]
Первый объект TextLine в TextBlock, если такой имеется. | TextBlock | ||
lastLine : flash.text.engine:TextLine [только для чтения]
Последний объект TextLine в TextBlock, если такой имеется. | TextBlock | ||
lineRotation : String
Поворачивает строки в текстовом блоке как единое целое. | TextBlock | ||
tabStops : Vector.<flash.text.engine:TabStop>
Задает позиции табуляции для текста в блоке в виде Vector объектов TabStop. | TextBlock | ||
textJustifier : flash.text.engine:TextJustifier
Задает TextJustifier для использования при создании строки. | TextBlock | ||
textLineCreationResult : String [только для чтения]
Показывает результат операции createTextLine(). | TextBlock | ||
userData : *
Дает возможность приложению связать произвольные данные с блоком текста. | TextBlock |
Метод | Определено | ||
---|---|---|---|
TextBlock(content:ContentElement = null, tabStops:Vector.<flash.text.engine:TabStop> = null, textJustifier:flash.text.engine:TextJustifier = null, lineRotation:String = "rotate0", baselineZero:String = "roman", bidiLevel:int = 0, applyNonLinearFontScaling:Boolean = true, baselineFontDescription:FontDescription = null, baselineFontSize:Number = 12.0)
Создает объект TextBlock
| TextBlock | ||
createTextLine(previousLine:flash.text.engine:TextLine = null, width:Number = 1000000, lineOffset:Number = 0.0, fitSomething:Boolean = false):flash.text.engine:TextLine
Предписывает текстовому блоку создать строку текста из своего содержимого, которая бы начиналась в точке, заданной параметром previousLine, и заканчивалась в точке, заданной параметром width. | TextBlock | ||
Выдает базовое содержимое TextBlock в виде строки XML. | TextBlock | ||
Находит индекс следующей границы атома для заданного индекса символа, исключая символ по заданному индексу. | TextBlock | ||
Находит индекс следующей границы слова от указанного индекса символа, исключая символ по заданному индексу. | TextBlock | ||
Находит индекс предыдущей границы атома для указанного индекса символа, исключая символ по указанному индексу. | TextBlock | ||
Находит индекс предыдущей границы слова для указанного индекса символа, исключая символ по указанному индексу. | TextBlock | ||
Возвращает элемент TextLine, содержащий символ, заданный параметром charIndex. | TextBlock | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
recreateTextLine(textLine:flash.text.engine:TextLine, previousLine:flash.text.engine:TextLine = null, width:Number = 1000000, lineOffset:Number = 0.0, fitSomething:Boolean = false):flash.text.engine:TextLine
Предписывает текстовому блоку повторно использовать существующую строку для создания строки текста из своего содержимого, которая бы начиналась в точке, заданной параметром previousLine, и заканчивалась в точке, заданной параметром width. | TextBlock | ||
Дает текстовому блоку команду очистить все временные данные, связанные с созданием текстовых строк. | TextBlock | ||
Удаляет диапазон текстовых строк из списка строк, поддерживаемых текстовым блоком TextBlock. | TextBlock | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
Возвращает строковое представление заданного объекта. | Object | ||
Возвращает элементарное значение заданного объекта. | Object |
applyNonLinearFontScaling | свойство |
applyNonLinearFontScaling:Boolean
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Указывает, что требуется улучшить внешний вид экрана за счет качества печати WYSIWYG («получаешь то, что видишь»). Для платформ и шрифтов, которые не делают поддержки sub положение глифа пиксела во время рендеринга шрифта устройства, но делать поддержку нелинейный масштаб, устанавливая эти свойства в true
активирует использование метрических в некоторой стоимости к точности печати WYSIWYG, особенно для маленьких размеров точки. Не линейный масштаб шрифта работает selectivly масштабом ширина отдельных глифов, чтобы скрыть неприглядные зазоры, причиненные привязыванием пиксела.
На платформах, которые делают положение глифа подпиксела поддержки, проигнорирован этот флаг.
Этот флаг не действует на рендеринге встроенного шрифта
По умолчанию используется значение true
.
Реализация
public function get applyNonLinearFontScaling():Boolean
public function set applyNonLinearFontScaling(value:Boolean):void
baselineFontDescription | свойство |
baselineFontDescription:FontDescription
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Шрифт, который используется для определения базовых линий для всех строк, созданных из блока, независимо от их содержимого. Базовые линии зависят от шрифта и его размера.
По умолчанию используется null
. Когда шрифт базовой линии имеет значение null
, размер шрифта базовой линии игнорируется, а базовая линия отдельно взятой строки определяется на основе шрифта и размера самого крупного текста в строке. Если заданы и baselineFontDescription
и baselineFontSize
, эти свойства определяют базовые линии для всех строк в текстовом блоке, независимо от их содержимого. Такая комбинация чаще всего используется в восточно-азиатской типографике.
Реализация
public function get baselineFontDescription():FontDescription
public function set baselineFontDescription(value:FontDescription):void
Связанные элементы API
baselineFontSize | свойство |
baselineFontSize:Number
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Размер шрифта, который используется для вычисления базовых линий для строк, создаваемых из блока. Базовые линии зависят от шрифта и его размера.
По умолчанию используется значение 12
. Когда шрифт базовой линии имеет значение null
, размер шрифта базовой линии игнорируется, а базовая линия отдельно взятой строки определяется на основе шрифта и размера самого крупного текста в строке.
Реализация
public function get baselineFontSize():Number
public function set baselineFontSize(value:Number):void
Выдает
ArgumentError — Заданный baselineFontSize меньше 0.
|
Связанные элементы API
baselineZero | свойство |
baselineZero:String
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Задает, какая базовая линия находится в точке с координатой у=0 для строк, созданных из этого блока. Действительные значения для этого свойства находятся в членах класса TextBaseline
.
Значение по умолчанию — TextBaseline.ROMAN
.
В качестве значений этого свойства используйте следующие строковые значения:
Строковое значение | Описание |
---|---|
TextBaseline.ROMAN | Латинская базовая линия строк имеет координату у=0. |
TextBaseline.ASCENT | Базовая линия верхнего выносного элемента строк имеет координату у=0. |
TextBaseline.DESCENT | Базовая линия нижнего выносного элемента строк имеет координату у=0. |
TextBaseline.IDEOGRAPHIC_TOP | Идеографическая верхняя базовая линия строк имеет координату у=0. |
TextBaseline.IDEOGRAPHIC_CENTER | Идеографическая центральная базовая линия строк имеет координату у=0. |
TextBaseline.IDEOGRAPHIC_BOTTOM | Идеографическая нижняя базовая линия строк имеет координату у=0. |
Реализация
public function get baselineZero():String
public function set baselineZero(value:String):void
Выдает
ArgumentError — Если задано значение, не являющееся членом TextBaseline .
|
Связанные элементы API
bidiLevel | свойство |
bidiLevel:int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Указывает уровень встраивания двунаправленных абзацев для текстового блока. В общем случае следует использовать 0 для абзацев с направлением письма слева направо (английский, японский язык и т. д.) и 1 для абзацев с направлением письма справа налево (арабский, иврит и т. д.). Значения, отличные от 0 или 1, зарезервированы для особых случаев. Дополнительные сведения см. в документе UAX#9, Unicode Bidirectional Algorithm ("Двунаправленный алгоритм Юникод"), http://www.unicode.org/reports/tr9/.
Значением по умолчанию является 0.
При модификации bidiLevel
валидность всех разбитых ранее строк меняется на TextLineValidity.INVALID. После изменения bidiLevel
свойство firstInvalidLine
имеет то же значение, что и firstLine
, и в объекте TextBlock необходимо повторно разбивать все строки.
Реализация
public function get bidiLevel():int
public function set bidiLevel(value:int):void
Выдает
ArgumentError — Если задано значение меньше 0.
|
Связанные элементы API
Пример ( Использование этого примера )
bidiLevel
, а потом с нечетным значением bidiLevel
.
package { import flash.display.Sprite; import flash.text.engine.TextBlock; import flash.text.engine.TextElement; import flash.text.engine.TextLine; import flash.text.engine.ElementFormat; import flash.text.engine.FontDescription; public class TextBlock_bidiLevelExample extends Sprite { public function TextBlock_bidiLevelExample():void { var fontSize:Number = 36; var format:ElementFormat = new ElementFormat(); format.fontDescription = new FontDescription("Adobe Hebrew"); format.fontSize = fontSize; var y:Number = 0; var leading:Number = fontSize * 0.2; var text:String = "abc" + String.fromCharCode(0x05D0, 0x05D1, 0x05D2); var textBlock:TextBlock = new TextBlock(); textBlock.content = new TextElement(text, format); // bidiLevel even textBlock.bidiLevel = 0; var textLine = textBlock.createTextLine(null, 400); y += leading + textLine.ascent; textLine.y = y; y += textLine.descent; addChild(textLine); // bidiLevel odd textBlock.content = new TextElement(text, format); textBlock.bidiLevel = 1; textLine = textBlock.createTextLine(null, 400); y += leading + textLine.ascent; textLine.y = y; addChild(textLine); } } }
content | свойство |
content:ContentElement
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Хранит содержимое текстового блока. Так как ContentElement является базовым классом, назначьте для content
экземпляр подкласса ContentElement: TextElement, GraphicElement или GroupElement. TextElement содержит объект String, GraphicElement содержит объект DisplayObject, а GroupElement содержит объект Vector, включающий один или несколько объектов TextElement, GraphicElement или других объектов GroupElement. Используйте TextElement для абзаца однородного текста, GraphicElement для графики, а GroupElement для комбинации текстовых и графических элементов или нескольких экземпляров этих элементов, а также для других объектов GroupElement.
По умолчанию используется null
.
Модификация свойства content
приводит к изменению валидности всех созданных ранее строк на TextLineValidity.INVALID
. После изменения content
свойство firstInvalidLine
имеет то же значение, что и firstLine
, и в объекте TextBlock необходимо повторно разбивать все строки.
Реализация
public function get content():ContentElement
public function set content(value:ContentElement):void
Выдает
ArgumentError — Если задано значение, не являющееся известным подклассом ContentElement .
| |
ArgumentError — Заданное значение value уже является членом группы.
|
Связанные элементы API
firstInvalidLine | свойство |
firstInvalidLine:flash.text.engine:TextLine
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Указывает первую строку в текстовом блоке, в котором значение свойства TextLine.validity
не равно TextLineValidity.VALID
.
По умолчанию используется null
.
Реализация
public function get firstInvalidLine():flash.text.engine:TextLine
Связанные элементы API
firstLine | свойство |
firstLine:flash.text.engine:TextLine
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Первый объект TextLine в TextBlock, если такой имеется.
По умолчанию используется null
.
Реализация
public function get firstLine():flash.text.engine:TextLine
Связанные элементы API
lastLine | свойство |
lastLine:flash.text.engine:TextLine
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Последний объект TextLine в TextBlock, если такой имеется.
По умолчанию используется null
.
Реализация
public function get lastLine():flash.text.engine:TextLine
Связанные элементы API
lineRotation | свойство |
lineRotation:String
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Поворачивает строки в текстовом блоке как единое целое. Вызовите метод createTextLine()
после настройки lineRotation
, иначе он не будет иметь силы. Значение по умолчанию равно TextRotation.ROTATE_0
.
Конечный поворот любого глифа зависит от значений ElementFormat.textRotation
, ContentElement.textRotation
и TextBlock.lineRotation
.
TextBlock.lineRotation
обычно используется для восточно-азиатского текста. Чтобы создать абзац вертикального японского текста, выполните следующие действия.
- Задайте свойству
TextBlock.lineRotation
значениеTextRotation.ROTATE_90
. - Оставьте для свойства
ElementFormat.textRotation
содержимого значение по умолчанию,TextRotation.AUTO
.
Используйте следующие константы, определенные в классе TextRotation
, чтобы задать значение для этого свойства.
Строковое значение | Описание |
---|---|
TextRotation.ROTATE_0 | Строки не поворачиваются. |
TextRotation.ROTATE_90 | Строки поворачиваются на 90 градусов по часовой стрелке. |
TextRotation.ROTATE_180 | Строки поворачиваются на 180 градусов. |
TextRotation.ROTATE_270 | Строки поворачиваются на 270 градусов по часовой стрелке. |
TextRotation.AUTO | Не поддерживается. |
Реализация
public function get lineRotation():String
public function set lineRotation(value:String):void
Выдает
ArgumentError — Если задано значение, не являющееся членом TextRotation .
| |
ArgumentError — Если задано значение TextRotation.AUTO .
|
Связанные элементы API
Пример ( Использование этого примера )
lineRotation
задается значение TextRotation.ROTATE_90 для вертикального отображения строки.
package { import flash.display.Sprite; import flash.text.engine.FontDescription; import flash.text.engine.TextBlock; import flash.text.engine.TextElement; import flash.text.engine.TextLine; import flash.text.engine.TextRotation; import flash.text.engine.ElementFormat; public class TextBlock_lineRotationExample extends Sprite { public function TextBlock_lineRotationExample():void { var Japanese:String = String.fromCharCode( 0x5185, 0x95A3, 0x5E9C, 0x304C, 0x300C, 0x653F, 0x5E9C, 0x30A4, 0x30F3, 0x30BF, 0x30FC, 0x30CD, 0x30C3, 0x30C8, 0x30C6, 0x30EC, 0x30D3, 0x300D, 0x306E, 0x52D5, 0x753B, 0x914D, 0x4FE1, 0x5411, 0x3051, 0x306B, 0x30A2, 0x30C9, 0x30D3, 0x30B7, 0x30B9, 0x30C6, 0x30E0, 0x30BA, 0x793E, 0x306E ) + "FMS 2" + String.fromCharCode(0x3092, 0x63A1, 0x7528, 0x3059, 0x308B, 0x3068, 0x767a, 0x8868, 0x3057, 0x307e, 0x3057, 0x305F, 0x3002); var fontDescription:FontDescription = new FontDescription("MS Mincho"); var format:ElementFormat = new ElementFormat(); format.fontSize = 15; format.fontDescription = fontDescription; var textElement:TextElement = new TextElement(Japanese, format); var textBlock:TextBlock = new TextBlock(); textBlock.content = textElement; textBlock.lineRotation = TextRotation.ROTATE_90; var linePosition:Number = this.stage.stageWidth - 120; var previousLine:TextLine = null; while (true) { var textLine:TextLine = textBlock.createTextLine( previousLine, 300); if (textLine == null) break; textLine.y = 30; textLine.x = linePosition; linePosition -= 24; addChild(textLine); previousLine = textLine; } } } }
tabStops | свойство |
tabStops:Vector.<flash.text.engine:TabStop>
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Задает позиции табуляции для текста в блоке в виде Vector объектов TabStop
.
Значение по умолчанию — null
, то есть, позиции табуляции не заданы. Когда позиции табуляции не заданы (или точка вставки находится за последней указанной позицией табуляции), среда выполнения по умолчанию создает табуляцию размером около 1 см.
Когда задается свойство tabStops
, объект TextBlock создает копию вектора для внутреннего использования. Изменение исходного вектора или его содержимого не влияет на объект TextBlock. Когда запрашивается свойство tabStops
, возвращается копия внутреннего вектора. И опять же, изменение этого возвращенного вектора или его содержимого не влияет на объект TextBlock.
Реализация
public function get tabStops():Vector.<flash.text.engine:TabStop>
public function set tabStops(value:Vector.<flash.text.engine:TabStop>):void
Выдает
ArgumentError — Заданный tabStops содержит null элементов.
| |
ArgumentError — Заданные tabStops не отсортированы по возрастанию позиции.
|
Связанные элементы API
textJustifier | свойство |
textJustifier:flash.text.engine:TextJustifier
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Задает TextJustifier для использования при создании строки.
Значением по умолчанию является объект TextJustifier, созданный по умолчанию.
Когда задается свойство textJustifier
, объект TextBlock создает копию объекта для внутреннего использования. Изменение исходного объекта не влияет на объект TextBlock. Когда запрашивается свойство textJustifier
, возвращается копия внутреннего объекта. И опять же, изменение этого возвращенного объекта не влияет на объект TextBlock.
Реализация
public function get textJustifier():flash.text.engine:TextJustifier
public function set textJustifier(value:flash.text.engine:TextJustifier):void
Выдает
ArgumentError — Если задано значение, не являющееся известным подклассом TextJustifier .
|
Связанные элементы API
textLineCreationResult | свойство |
textLineCreationResult:String
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Показывает результат операции createTextLine()
. Изменение содержимого в блоке приводит к тому, что сделанные ранее разрывы строк становятся недействительными, а значение свойства сбрасывается на null
.
По умолчанию используется null
.
Значениями этого свойства являются члены класса TextLineCreationResult
Строковое значение | Описание |
---|---|
TextLineCreationResult.SUCCESS | Разрыв строки выполнен успешно. |
TextLineCreationResult.COMPLETE | Либо вновь созданная строка идеально выровнялась со следующими строками, валидность которых сменилась с POSSIBLY_INVALID на VALID, либо строка не была создана, так как весь текст в блоке уже разбит на строки. |
TextLineCreationResult.INSUFFICIENT_WIDTH | Строка не создана, так как не обнаружен текст, подходящий для заданной ширины. |
Реализация
public function get textLineCreationResult():String
Связанные элементы API
userData | свойство |
public var userData:*
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Дает возможность приложению связать произвольные данные с блоком текста. Данные могут быть информацией, ссылающейся на содержимое, такое как дата редакции или имя автора, или могут быть кэшированными данными, используемыми при обработке.
TextBlock | () | Конструктор |
public function TextBlock(content:ContentElement = null, tabStops:Vector.<flash.text.engine:TabStop> = null, textJustifier:flash.text.engine:TextJustifier = null, lineRotation:String = "rotate0", baselineZero:String = "roman", bidiLevel:int = 0, applyNonLinearFontScaling:Boolean = true, baselineFontDescription:FontDescription = null, baselineFontSize:Number = 12.0)
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Создает объект TextBlock
Параметрыcontent:ContentElement (default = null ) — Содержимое текстового блока.
| |
tabStops:Vector.<flash.text.engine:TabStop> (default = null ) — Отступы для текста в блоке.
| |
textJustifier:flash.text.engine:TextJustifier (default = null ) — Объект TextJustifier для использования в этом блоке при создании строки. Средство расстановки переносов отсутствует, будет создано средство по умолчанию на основе английской локали.
| |
lineRotation:String (default = "rotate0 ") — Вращение, примененное к текстовым строкам, созданным из текстового блока в виде единиц.
| |
baselineZero:String (default = "roman ") — Указывает, какая базовая строка находит в точке y=0 для всех строк блока.
| |
bidiLevel:int (default = 0 ) — Уровень двусторонней вложенности текста в блоке по умолчанию.
| |
applyNonLinearFontScaling:Boolean (default = true ) — Указывает, что необходимо улучшить внешний вид экрана за счет качества печати визуального редактора.
| |
baselineFontDescription:FontDescription (default = null ) — Задает описание шрифта, из которого нужно выводить базовые строки для всех строк блока.
| |
baselineFontSize:Number (default = 12.0 ) — Задает размер для использования с baselineFontDescription. Этот параметр игнорируется, если baselineFontDescription равно null .
|
Выдает
ArgumentError — Заданный content не является известным подклассом ContentElement .
| |
ArgumentError — Заданный content уже является членом группы.
| |
ArgumentError — Заданная локаль lineRotation не является членом TextRotation .
| |
ArgumentError — Заданная локаль baselineZero не является членом TextBaseline .
| |
ArgumentError — Заданный bidiLevel меньше 0.
| |
ArgumentError — Заданный tabStops содержит null элементов.
| |
ArgumentError — Заданные tabStops не отсортированы по возрастанию позиции.
| |
ArgumentError — Заданный baselineFontSize меньше 0.
|
Связанные элементы API
createTextLine | () | метод |
public function createTextLine(previousLine:flash.text.engine:TextLine = null, width:Number = 1000000, lineOffset:Number = 0.0, fitSomething:Boolean = false):flash.text.engine:TextLine
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Предписывает текстовому блоку создать строку текста из своего содержимого, которая бы начиналась в точке, заданной параметром previousLine
, и заканчивалась в точке, заданной параметром width
. Текстовая строка — это объект TextLine, который можно добавить к списку отображения.
Разрыв строк в диапазоне текста в блоке, который уже разорван, может привести к изменению валидности строк в диапазоне разрыва и после него. Состояние строк может меняться с VALID на INVALID или POSSIBLY_INVALID. Если заново разорванная строка выравнивается с ранее разорванной строкой с состоянием POSSIBLY_INVALID, ранее разорванная строка и все последующие с состоянием POSSIBLY_INVALID снова меняют состояние на VALID. Валидность строк, значения которых не являются членами класса TextLineValidity
не изменяются на VALID, но могут измениться на INVALID. Проверьте свойство firstInvalidLine
после внесения любых изменений в текстовый блок, чтобы увидеть, где начинается или возобновляется разрыв строк.
Можно создать искусственные разрывы слов, включив в текст нулевой пробел Unicode (ZWSP). Это может быть полезно для таких языков, как тайский, где для правильного разрыва строк требуется словарь. В среду выполнения Flash не встроен такой словарь.
Во избежание чрезмерного потребления памяти, когда созданы все необходимые строки и не предвидится необходимость повторной разбивки, например, в результате изменения размера контейнера, необходимо вызвать метод releaseLineCreationData()
, который позволяет блоку текста очистить временные данные, связанные с разрывом строк.
Параметры
previousLine:flash.text.engine:TextLine (default = null ) — Указывает на ранее короткую строку, которой закрывается абзац. Может быть null , если первая строка короткая.
| |
width:Number (default = 1000000 ) — Указывает требуемую ширину строки в пикселях. Фактическая ширина может быть меньше.
| |
lineOffset:Number (default = 0.0 ) — Необязательный параметр, задающий разницу в пикселях между началом линии и отступом. Может использоваться, если строки не выровнены, но при этом необходимо выровнять их отступы. Значение этого параметра по умолчанию 0,0 .
| |
fitSomething:Boolean (default = false ) — Необязательный параметр, который предписывает проигрывателю Flash Player вместить хотя бы один символ в текстовую строку вне зависимости от того, какая задана ширина (даже если она равна нулю или отрицательна, что в остальных случаях приводит к исключению).
|
flash.text.engine:TextLine — Текстовая строка или null , если текстовый блок пуст или его ширина меньше ширины текстового элемента. Для различения этих случаев проверьте свойство textLineCreationResult текстового блока.
|
Выдает
ArgumentError — Если элемент TextLine, заданный параметром previousLine , недействителен.
| |
ArgumentError — Если объект TextLine, определенный свойством previousLine принадлежит другому объекту TextBlock.
| |
ArgumentError — Если width меньше нуля, кроме случаев, когда fitSomething равно true.
| |
ArgumentError — Если значение width больше, чем TextLine.MAX_LINE_WIDTH .
| |
IllegalOperationError — Если один или несколько элементов содержимого текстового блока равны null ElementFormat .
|
Связанные элементы API
Пример ( Использование этого примера )
createTextLine()
для создания текстовых строк в текстовом блоке. Проигрыватель выполняет для этого следующие действия:
- создает элемент TextElement из строки и задает для него размер шрифта 20;
- создает объект TextBlock и назначает ему TextBlock;
- Вызов метода
createTextLine()
для создания строки шириной 300 пикселей из текстового блока; - помещает каждую строку в рабочую область (
addChild()
) и задает положение (x
иy
).
package { import flash.display.Sprite; import flash.text.engine.TextBlock; import flash.text.engine.TextElement; import flash.text.engine.TextLine; import flash.text.engine.ElementFormat; import flash.text.engine.FontDescription; public class TextBlock_createTextLineExample extends Sprite { public function TextBlock_createTextLineExample():void { var str:String = "I am a TextElement, created from a String and assigned " + "to the content property of a TextBlock. The createTextLine() method " + "then created these lines, 300 pixels wide, for display." ; var fontDescription:FontDescription = new FontDescription("Arial"); var format:ElementFormat = new ElementFormat(fontDescription); format.fontSize = 16; var textElement:TextElement = new TextElement(str, format); var textBlock:TextBlock = new TextBlock(); textBlock.content = textElement; createLines(textBlock); } private function createLines(textBlock:TextBlock):void { var lineWidth:Number = 300; var xPos:Number = 15.0; var yPos:Number = 20.0; var textLine:TextLine = textBlock.createTextLine (null, lineWidth); while (textLine) { textLine.x = xPos; textLine.y = yPos; yPos += textLine.height + 2; addChild (textLine); textLine = textBlock.createTextLine (textLine, lineWidth); } } } }
dump | () | метод |
public function dump():String
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Выдает базовое содержимое TextBlock в виде строки XML. Это может пригодиться при автоматическом тестировании, так как включает сведения о тексте, форматировании и компоновке.
Следующий код описывает вывод.
>block< [0-N LINE] >/block<
Сведения о выводе для каждой строки см. в описании метода TextLine.dump().
Примечание. Содержимое и формат вывода могут измениться в будущем. Adobe не гарантирует обратной совместимости данного метода.
ВозвращаетString |
Связанные элементы API
findNextAtomBoundary | () | метод |
public function findNextAtomBoundary(afterCharIndex:int):int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Находит индекс следующей границы атома для заданного индекса символа, исключая символ по заданному индексу. Символы между границами атомов вместе формируют один атом в TextLine
, например, «e» и надстрочный значок ударения.
Параметры
afterCharIndex:int — Задает индекс символа, после которого нужно искать следующую границу атома.
|
int — Индекс следующей границы атома после заданного индекса символа.
|
Выдает
RangeError — Указанный index лежит вне диапазона.
| |
IllegalOperationError — Строка TextLine, которой принадлежит индексируемый символ, недействительна.
|
Связанные элементы API
findNextWordBoundary | () | метод |
public function findNextWordBoundary(afterCharIndex:int):int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Находит индекс следующей границы слова от указанного индекса символа, исключая символ по заданному индексу. Границы слов определяются на основе свойств символов в кодировке Unicode.
Параметры
afterCharIndex:int — Задает индекс символа, после которого нужно искать следующую границу слова.
|
int — Индекс следующей границы слова после заданного индекса символа.
|
Выдает
RangeError — Указанный index лежит вне диапазона.
| |
IllegalOperationError — Строка TextLine, которой принадлежит индексируемый символ, недействительна.
|
findPreviousAtomBoundary | () | метод |
public function findPreviousAtomBoundary(beforeCharIndex:int):int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Находит индекс предыдущей границы атома для указанного индекса символа, исключая символ по указанному индексу. Символы между границами атомов вместе формируют один атом в TextLine
, например, «e» и надстрочный значок ударения.
Параметры
beforeCharIndex:int — Задает индекс символа, до которого нужно искать предыдущую границу атома.
|
int — Индекс предыдущей границы атома до заданного индекса символа.
|
Выдает
RangeError — Указанный index лежит вне диапазона.
| |
IllegalOperationError — Строка TextLine, которой принадлежит индексируемый символ, недействительна.
|
Связанные элементы API
findPreviousWordBoundary | () | метод |
public function findPreviousWordBoundary(beforeCharIndex:int):int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Находит индекс предыдущей границы слова для указанного индекса символа, исключая символ по указанному индексу. Границы слов определяются на основе свойств символов в кодировке Unicode.
Параметры
beforeCharIndex:int — Задает индекс символа, до которого нужно искать предыдущую границу слова.
|
int — Индекс предыдущей границы слова до заданного иныдекса символа.
|
Выдает
RangeError — Указанный index лежит вне диапазона.
| |
IllegalOperationError — Строка TextLine, которой принадлежит индексируемый символ, недействительна.
|
getTextLineAtCharIndex | () | метод |
public function getTextLineAtCharIndex(charIndex:int):flash.text.engine:TextLine
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Возвращает элемент TextLine, содержащий символ, заданный параметром charIndex
.
Параметры
charIndex:int — Отсчитываемое от нуля значение индекса для символа (например, первый символ — 0, второй символ — 1 и т.д.).
|
flash.text.engine:TextLine — Элемент TextLine, содержащий символ с индексом charIndex .
|
Выдает
RangeError — Указанный индекс символа находится за пределами диапазона.
|
recreateTextLine | () | метод |
public function recreateTextLine(textLine:flash.text.engine:TextLine, previousLine:flash.text.engine:TextLine = null, width:Number = 1000000, lineOffset:Number = 0.0, fitSomething:Boolean = false):flash.text.engine:TextLine
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10.1, AIR 2, Flash Lite 4 |
Предписывает текстовому блоку повторно использовать существующую строку для создания строки текста из своего содержимого, которая бы начиналась в точке, заданной параметром previousLine
, и заканчивалась в точке, заданной параметром width
. Текстовая строка — это объект TextLine, который можно добавить к списку отображения. Повторное использования существующих текстовых строк позволяет повысить производительность, так как требуется создать меньше объектов.
Воссоздаваемый объект textLine
освобождается из текстового блока, если он в него входит. Кроме того, все свойства, включая свойства, унаследованные от классов DisplayObjectContainer
, InteractiveObject
и DisplayObject
сбрасываются до значений по умолчанию. В завершение, все дочерние элементы строки удаляются, включая графические элементы и другие украшения, после чего удаляются все прослушиватели событий строки. С целью улучшения производительности из операции полного сброса исключается сама строка, которая остается в родительском объекте.
Разрыв строк в диапазоне текста в блоке, который уже разорван, может привести к изменению валидности строк в диапазоне разрыва и после него. Состояние строк может меняться с VALID на INVALID или POSSIBLY_INVALID. Если заново разорванная строка выравнивается с ранее разорванной строкой с состоянием POSSIBLY_INVALID, ранее разорванная строка и все последующие с состоянием POSSIBLY_INVALID снова меняют состояние на VALID. Валидность строк, значения которых не являются членами класса TextLineValidity
не изменяются на VALID, но могут измениться на INVALID. Проверьте свойство firstInvalidLine
после внесения любых изменений в текстовый блок, чтобы увидеть, где начинается или возобновляется разрыв строк.
Можно создать искусственные разрывы слов, включив в текст нулевой пробел Unicode (ZWSP). Это может быть полезно для таких языков, как тайский, где для правильного разрыва строк требуется словарь. В среду выполнения Flash не встроен такой словарь.
Во избежание чрезмерного потребления памяти, когда созданы все необходимые строки и не предвидится необходимость повторной разбивки, например, в результате изменения размера контейнера, необходимо вызвать метод releaseLineCreationData()
, который позволяет блоку текста очистить временные данные, связанные с разрывом строк.
Параметры
textLine:flash.text.engine:TextLine — Определяет созданный ранее объект TextLine для повторного использования.
| |
previousLine:flash.text.engine:TextLine (default = null ) — Указывает на ранее короткую строку, которой закрывается абзац. Может быть null , если первая строка короткая.
| |
width:Number (default = 1000000 ) — Указывает требуемую ширину строки в пикселях. Фактическая ширина может быть меньше.
| |
lineOffset:Number (default = 0.0 ) — Необязательный параметр, задающий разницу в пикселях между началом линии и отступом. Может использоваться, если строки не выровнены, но при этом необходимо выровнять их отступы. Значение этого параметра по умолчанию 0,0 .
| |
fitSomething:Boolean (default = false ) — Необязательный параметр, который предписывает проигрывателю Flash Player вместить хотя бы один символ в текстовую строку вне зависимости от того, какая задана ширина (даже если она равна нулю или отрицательна, что в остальных случаях приводит к исключению).
|
flash.text.engine:TextLine — Текстовая строка или null , если текстовый блок пуст или его ширина меньше ширины текстового элемента. Для различения этих случаев проверьте свойство textLineCreationResult текстового блока.
|
Выдает
ArgumentError — Если textLine имеет нулевое значение.
| |
ArgumentError — Если элемент TextLine, заданный параметром previousLine , недействителен.
| |
ArgumentError — Если объект TextLine, определенный свойством previousLine принадлежит другому объекту TextBlock.
| |
ArgumentError — Если объект TextLine, определенный свойством previousLine , также указан в свойстве textLine .
| |
ArgumentError — Если width меньше нуля, кроме случаев, когда fitSomething равно true.
| |
ArgumentError — Если значение width больше, чем TextLine.MAX_LINE_WIDTH .
| |
IllegalOperationError — Если один или несколько элементов содержимого текстового блока равны null ElementFormat .
|
Связанные элементы API
Пример ( Использование этого примера )
textLine
:
var elementFormat:ElementFormat = new ElementFormat(); elementFormat.fontDescription = new FontDescription("Arial"); elementFormat.fontSize = 48; var textElement:TextElement = new TextElement("Text you'll never see", elementFormat) var textBlock:TextBlock = new TextBlock(textElement); var textLine:TextLine = textBlock.createTextLine(); textLine.x = 50; textLine.y = 50; addChild(textLine); // Reuse the element format to preserve the text formatting var elementTwo:TextElement = new TextElement("Text you see", elementFormat); textBlock.content = elementTwo; textBlock.recreateTextLine(textLine); // Set the position (and any other display object properties like alpha, children, etc.) // otherwise, they're all set to default properties. textLine.x = 50; textLine.y = 50;
releaseLineCreationData | () | метод |
public function releaseLineCreationData():void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10.1, AIR 2, Flash Lite 4 |
Дает текстовому блоку команду очистить все временные данные, связанные с созданием текстовых строк. Чтобы сократить объем памяти, используемый приложений, необходимо вызвать метод releaseLineCreationData()
по завершении создания текстовых строк из блока текста. Тем не менее, если требуется увеличить производительность при повторной разбивке строк (например, при изменении размера контейнера), метод releaseLineCreationData()
вызывать не следует. Таким образом, приложение самостоятельно регулирует использование памяти и производительность.
Если изменение текста не предвидится, рекомендуется следующий процесс: инициализируйте блок текста, вызывайте метод createTextLine()
столько, сколько нужно для создания нужного ввода, а затем вызовите метод releaseLineCreationData()
.
Связанные элементы API
releaseLines | () | метод |
public function releaseLines(firstLine:flash.text.engine:TextLine, lastLine:flash.text.engine:TextLine):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Удаляет диапазон текстовых строк из списка строк, поддерживаемых текстовым блоком TextBlock. Это позволяет очищать строки, если не существует других ссылок.
Задает значение членов textBlock
, nextLine
и previousLine
удаленных строк как null
. Задает значение validity
удаленных строк и следующих за ними в блоке TextBlock TextLineValidity.INVALID
.
Параметры
firstLine:flash.text.engine:TextLine — Указывает первую строку для освобождения.
| |
lastLine:flash.text.engine:TextLine — Указывает последнюю строку для освобождения.
|
Выдает
ArgumentError — Если TextLine, заданная параметрами firstLine или lastLine не включена в список текстовых строк, поддерживаемых блоком.
|
Связанные элементы API
package { import fl.controls.Button; import flash.text.engine.TextBlock; import flash.text.engine.TextLine; import flash.text.engine.TextElement; import flash.text.engine.ElementFormat; import flash.text.engine.TextRotation; import flash.text.engine.TextBaseline; import flash.text.engine.LineJustification; import flash.text.engine.FontDescription; import flash.text.engine.EastAsianJustifier; import flash.display.Loader; import flash.display.Sprite; import flash.display.Stage; import flash.events.MouseEvent; import flash.system.Capabilities; public class TextBlockExample extends Sprite { var vertical:Boolean; var container:Sprite; var textBlocks:Vector.<TextBlock>; var loader:Loader = new Loader(); var directionButton:Button = new Button(); public function TextBlockExample():void { addChild(directionButton); directionButton.width = 30; directionButton.move(50, 350); directionButton.addEventListener(MouseEvent.CLICK, clickHandler); createContent(); createLines(); } private function createEmptyBlock():TextBlock { var textBlock:TextBlock = new TextBlock(); textBlock.baselineZero = TextBaseline.IDEOGRAPHIC_CENTER; textBlock.textJustifier = new EastAsianJustifier("ja", LineJustification.ALL_BUT_LAST); textBlock.lineRotation = vertical? TextRotation.ROTATE_90: TextRotation.ROTATE_0; return textBlock; } private function paragraph1(format:ElementFormat):TextBlock { var textBlock:TextBlock = createEmptyBlock(); textBlock.content = new TextElement( String.fromCharCode( 0x5185, 0x95A3, 0x5E9C, 0x304C, 0x300C, 0x653F, 0x5E9C, 0x30A4, 0x30F3, 0x30BF, 0x30FC, 0x30CD, 0x30C3, 0x30C8, 0x30C6, 0x30EC, 0x30D3, 0x300D, 0x306E, 0x52D5, 0x753B, 0x914D, 0x4FE1, 0x5411, 0x3051, 0x306B, 0x30A2, 0x30C9, 0x30D3, 0x30B7, 0x30B9, 0x30C6, 0x30E0, 0x30BA, 0x793E, 0x306E ) + "FMS 2" + String.fromCharCode(0x3092, 0x63A1, 0x7528, 0x3059, 0x308B, 0x3068, 0x767a, 0x8868, 0x3057, 0x307e, 0x3057, 0x305F, 0x3002), format); return textBlock; } private function paragraph2(format:ElementFormat):TextBlock { var textBlock:TextBlock = createEmptyBlock(); textBlock.content = new TextElement( String.fromCharCode( 0x30AF, 0x30ED, 0x30B9, 0x30D7, 0x30E9, 0x30C3, 0x30C8, 0x30D5, 0x30A9, 0x30FC, 0x30E0, 0x4E0A, 0x3067, 0x518D, 0x751F, 0x53EF, 0x80FD, 0x306A ) + "Flash Video" + String.fromCharCode( 0x3092, 0x914D, 0x4FE1, 0x3001, 0x653F, 0x5E9C, 0x6700, 0x65B0, 0x60C5, 0x5831, 0x3092, 0x3088, 0x308A, 0x591A, 0x304F, 0x306E, 0x56FD, 0x6C11, 0x306B, 0x9AD8, 0x54C1, 0x8CEA, 0x306A, 0x753B, 0x50CF, 0x3067, 0x7C21, 0x5358, 0x304B, 0x3064, 0x30EA, 0x30A2, 0x30EB, 0x30BF, 0x30A4, 0x30E0, 0x306B, 0x63D0, 0x4F9B, 0x3059, 0x308B, 0x3053, 0x3068, 0x304C, 0x53EF, 0x80FD, 0x306B, 0x306A, 0x308A, 0x307e, 0x3057, 0x305F, 0x3002), format); return textBlock; } private function paragraph3(format:ElementFormat):TextBlock { var textBlock:TextBlock = createEmptyBlock(); textBlock.content = new TextElement( String.fromCharCode(0x3010) + "2007" + String.fromCharCode(0x5E74) + "2" + String.fromCharCode(0x6708) + "21" + String.fromCharCode(0x65E5, 0x3011), format); return textBlock; } private function createContent():void { var font:FontDescription = new FontDescription(); if (Capabilities.os.search("Mac OS") > -1) font.fontName = String.fromCharCode(0x5C0F, 0x585A, 0x660E, 0x671D) + " Pro R"; // "Kozuka Mincho Pro R" koFont.fontName = "Adobe " + String.fromCharCode(0xBA85, 0xC870) + " Std M"; // "Adobe Myungjo Std M" else font.fontName = "Kozuka Mincho Pro R"; var format:ElementFormat = new ElementFormat(); format.fontDescription = font; format.fontSize = 12; format.locale = "ja"; format.color = 0x000000; if (!vertical) format.textRotation = TextRotation.ROTATE_0; textBlocks = new Vector.<TextBlock>(); textBlocks.push( paragraph1(format), paragraph2(format), paragraph3(format)//, ); } private function createLines():void { if (container != null) { removeChild(container); } container = new Sprite(); container.y = 45; container.x = 40; addChild(container); var linePosition:Number = vertical? this.stage.stageWidth - 120: 12; for (var i:uint = 0; i < textBlocks.length; i++) { var textBlock:TextBlock = textBlocks[i]; var previousLine:TextLine = null; while (true) { var textLine:TextLine = textBlock.createTextLine( previousLine, 300); if (textLine == null) break; if (vertical) { textLine.x = linePosition; linePosition -= 24; directionButton.label = " -- "; } else { textLine.y = linePosition+50; linePosition += 24; directionButton.label = " | "; } container.addChild(textLine); previousLine = textLine; } if (vertical) linePosition -= 16; else linePosition += 16; } } private function clickHandler(event:MouseEvent):void { vertical = !vertical; createContent(); createLines(); } } }
Tue Jun 12 2018, 11:34 AM Z