Пакет | flash.text.engine |
Класс | public final class TextBlock |
Наследование | TextBlock ![]() |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Класс TextBlock должен содержать один абзац, так как алгоритмы двунаправленности и разрывов строк в Юникод одновременно могут обрабатывать один абзац. Для приложений, создающих несколько абзацев текста, используйте язык разметки или анализ текста, чтобы разбить текст на абзацы и создать для каждого из них объект TextBlock.
Объект TextBlock сохраняет свое содержимое в свойстве content
, которое является экземпляром класса ContentElement. Так как нельзя создать экземпляр класса ContentElement, задайте для content
экземпляр одного из его подклассов: TextElement, GraphicElement или GroupElement. Используйте TextElement для чисто текстового содержимого, GraphicElement для изображений или графического содержимого и GroupElement для содержимого, в котором сочетаются объекты TextElement, GraphicElement и другие объект GroupElement. Подробные сведения об управлении форматированными фрагментами текста, встроенными фрагментами и графическими элементами см. описание класса ContentElement.
Создав экземпляр TextBlock и настроив его свойство content
, вызовите метод createTextLine()
, чтобы создать строки текста, являющиеся экземплярами класса TextLine
.
См. также
Свойство | Определено | ||
---|---|---|---|
applyNonLinearFontScaling : Boolean
Указывает, что требуется улучшить внешний вид экрана за счет качества печати WYSIWYG ("получаешь то, что видишь"). | TextBlock | ||
baselineFontDescription : FontDescription
Шрифт, который используется для определения базовых линий для всех строк, созданных из блока, независимо от их содержимого. | TextBlock | ||
baselineFontSize : Number
Размер шрифта, который используется для вычисления базовых линий для строк, создаваемых из блока. | TextBlock | ||
baselineZero : String
Задает, какая базовая линия находится в точке с координатой у=0 для строк, созданных из этого блока. | TextBlock | ||
bidiLevel : int
Задает уровень двунаправленной вложенности текста в блоке по умолчанию. | TextBlock | ||
![]() | constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | |
content : ContentElement
Хранит содержимое текстового блока. | TextBlock | ||
firstInvalidLine : TextLine [только для чтения]
Указывает первую строку в текстовом блоке, в котором значение свойства TextLine.validity не равно TextLineValidity.VALID. | TextBlock | ||
firstLine : TextLine [только для чтения]
Первый объект TextLine в TextBlock, если такой имеется. | TextBlock | ||
lastLine : TextLine [только для чтения]
Последний объект TextLine в TextBlock, если такой имеется. | TextBlock | ||
lineRotation : String
Поворачивает строки в текстовом блоке как единое целое. | TextBlock | ||
![]() | prototype : Object [статические]
Ссылка на модель объекта класса или функции. | Object | |
tabStops : Vector
Задает позиции табуляции для текста в блоке в виде Vector объектов TabStop. | TextBlock | ||
textJustifier : TextJustifier
Задает TextJustifier для использования при создании строки. | TextBlock | ||
textLineCreationResult : String [только для чтения]
Показывает результат операции createTextLine(). | TextBlock | ||
userData : *
Дает возможность автору связать произвольные данные с текстовым блоком. | TextBlock |
Метод | Определено | ||
---|---|---|---|
TextBlock(content:ContentElement = null, tabStops:Vector = null, textJustifier: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:TextLine = null, width:Number = 1000000, lineOffset:Number = 0.0, fitSomething:Boolean = false):TextLine
Предписывает текстовому блоку создать строку текста из своего содержимого, которая бы начиналась в точке, заданной параметром previousLine, и заканчивалась в точке, заданной параметром width. | TextBlock | ||
Выдает базовое содержимое TextBlock в виде строки XML. | TextBlock | ||
Находит индекс следующей границы атома для заданного индекса символа, исключая символ по заданному индексу. | TextBlock | ||
Находит индекс следующей границы слова от указанного индекса символа, исключая символ по заданному индексу. | TextBlock | ||
Находит индекс предыдущей границы атома для указанного индекса символа, исключая символ по указанному индексу. | TextBlock | ||
Находит индекс предыдущей границы слова для указанного индекса символа, исключая символ по указанному индексу. | TextBlock | ||
Возвращает элемент TextLine, содержащий символ, заданный параметром charIndex. | TextBlock | ||
![]() |
Показывает, определено ли заданное свойство для объекта. | Object | |
![]() |
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | |
![]() |
Показывает наличие заданного свойства и его перечисляемость. | Object | |
Удаляет диапазон текстовых строк из списка строк, поддерживаемых текстовым блоком TextBlock. | TextBlock | ||
![]() |
Задает доступность динамического свойства для операций цикла. | Object | |
![]() |
Возвращает строковое представление заданного объекта. | Object | |
![]() |
Возвращает элементарное значение заданного объекта. | Object |
applyNonLinearFontScaling | свойство |
applyNonLinearFontScaling:Boolean
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Указывает, что требуется улучшить внешний вид экрана за счет качества печати WYSIWYG ("получаешь то, что видишь"). Для платформ и шрифтов, поддерживающих нелинейное масштабирование, это свойство в значении true
позволяет использовать эти показатели отчасти за счет качества печати WYSIWYG, особенно для малых размеров кегля.
Значение по умолчанию — true
.
public function get applyNonLinearFontScaling():Boolean
public function set applyNonLinearFontScaling(value:Boolean):void
baselineFontDescription | свойство |
baselineFontDescription:FontDescription
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Шрифт, который используется для определения базовых линий для всех строк, созданных из блока, независимо от их содержимого. Базовые линии зависят от шрифта и его размера.
Значение по умолчанию — null
. Когда шрифт базовой линии имеет значение null
, размер шрифта базовой линии игнорируется, а базовая линия отдельно взятой строки определяется на основе шрифта и размера самого крупного текста в строке. Если заданы и baselineFontDescription
и baselineFontSize
, эти свойства определяют базовые линии для всех строк в текстовом блоке, независимо от их содержимого. Такая комбинация чаще всего используется в восточно-азиатской типографике.
public function get baselineFontDescription():FontDescription
public function set baselineFontDescription(value:FontDescription):void
См. также
baselineFontSize | свойство |
baselineFontSize:Number
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Размер шрифта, который используется для вычисления базовых линий для строк, создаваемых из блока. Базовые линии зависят от шрифта и его размера.
Значение по умолчанию — 12
. Когда шрифт базовой линии имеет значение null
, размер шрифта базовой линии игнорируется, а базовая линия отдельно взятой строки определяется на основе шрифта и размера самого крупного текста в строке.
public function get baselineFontSize():Number
public function set baselineFontSize(value:Number):void
ArgumentError — Заданный baselineFontSize меньше 0.
|
См. также
baselineZero | свойство |
baselineZero:String
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Задает, какая базовая линия находится в точке с координатой у=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 .
|
См. также
bidiLevel | свойство |
bidiLevel:int
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Задает уровень двунаправленной вложенности текста в блоке по умолчанию. Четное число означает направление слева направо, а нечетное — справа налево. Можно увеличить значение bidiLevel
, чтобы указать количество уровней вложенности того или иного текста с точки зрения направления слева направо и справа налево.
Значение по умолчанию 0.
При модификации bidiLevel
валидность всех разбитых ранее строк меняется на TextLineValidity.INVALID. После изменения bidiLevel
свойство firstInvalidLine
имеет то же значение, что и firstLine
, и в объекте TextBlock необходимо повторно разбивать все строки.
public function get bidiLevel():int
public function set bidiLevel(value:int):void
ArgumentError — Если задано значение меньше 0.
|
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 |
Хранит содержимое текстового блока. Так как 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 уже является членом группы.
|
См. также
firstInvalidLine | свойство |
firstInvalidLine:TextLine
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Указывает первую строку в текстовом блоке, в котором значение свойства TextLine.validity
не равно TextLineValidity.VALID
.
Значение по умолчанию — null
.
public function get firstInvalidLine():TextLine
См. также
firstLine | свойство |
firstLine:TextLine
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Первый объект TextLine в TextBlock, если такой имеется.
Значение по умолчанию — null
.
public function get firstLine():TextLine
См. также
lastLine | свойство |
lastLine:TextLine
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Последний объект TextLine в TextBlock, если такой имеется.
Значение по умолчанию — null
.
public function get lastLine():TextLine
См. также
lineRotation | свойство |
lineRotation:String
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Поворачивает строки в текстовом блоке как единое целое. Вызовите метод 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 .
|
См. также
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
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Задает позиции табуляции для текста в блоке в виде Vector объектов TabStop
.
Значение по умолчанию — null
, то есть, позиции табуляции выключены. Когда позиции табуляции не заданы, символ табуляции (\t) вызывает создание новой строки.
В результате модификации содержимого Vector объектов tabStop текстовый процессор не помечает содержимое текстового блока как недействительное. Однако, если задать Vector объектов tabStop это происходит.
public function get tabStops():Vector
public function set tabStops(value:Vector):void
ArgumentError — Заданный tabStops содержит null элементов.
| |
ArgumentError — Заданные tabStops не отсортированы по возрастанию позиции.
|
См. также
textJustifier | свойство |
textJustifier:TextJustifier
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Задает TextJustifier для использования при создании строки.
Значением по умолчанию является объект TextJustifier, созданный по умолчанию.
public function get textJustifier():TextJustifier
public function set textJustifier(value:TextJustifier):void
ArgumentError — Если задано значение, не являющееся известным подклассом TextJustifier .
|
См. также
textLineCreationResult | свойство |
textLineCreationResult:String
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Показывает результат операции createTextLine()
. Изменение содержимого в блоке приводит к тому, что сделанные ранее разрывы строк становятся недействительными, а значение свойства сбрасывается на null
.
Значение по умолчанию — null
.
Значениями этого свойства являются члены класса TextLineCreationResult
Строковое значение | Описание |
---|---|
TextLineCreationResult.SUCCESS | Разрыв строки выполнен успешно. |
TextLineCreationResult.COMPLETE | Либо вновь созданная строка идеально выровнялась со следующими строками, валидность которых сменилась с POSSIBLY_INVALID на VALID, либо строка не была создана, так как весь текст в блоке уже разбит на строки. |
TextLineCreationResult.INSUFFICIENT_WIDTH | Строка не создана, так как не обнаружен текст, подходящий для заданной ширины. |
public function get textLineCreationResult():String
См. также
userData | свойство |
public var userData:*
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Дает возможность автору связать произвольные данные с текстовым блоком. Данные могут быть информацией, ссылающейся на содержимое, такое как дата редакции или имя автора, или могут быть кэшированными данными, используемыми при обработке.
TextBlock | () | Конструктор |
public function TextBlock(content:ContentElement = null, tabStops:Vector = null, textJustifier: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 |
Создает объект TextBlock
Параметрыcontent:ContentElement (default = null ) — Содержимое текстового блока.
| |
tabStops:Vector (default = null ) — Отступы для текста в блоке.
| |
textJustifier: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.
|
См. также
createTextLine | () | метод |
public function createTextLine(previousLine:TextLine = null, width:Number = 1000000, lineOffset:Number = 0.0, fitSomething:Boolean = false):TextLine
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Предписывает текстовому блоку создать строку текста из своего содержимого, которая бы начиналась в точке, заданной параметром previousLine
, и заканчивалась в точке, заданной параметром width
. Текстовая строка — это объект TextLine, который можно добавить к списку отображения.
Разрыв строк в диапазоне текста в блоке, который уже разорван, может привести к изменению валидности строк в диапазоне разрыва и после него. Состояние строк может меняться с VALID на INVALID или POSSIBLY_INVALID. Если заново разорванная строка выравнивается с ранее разорванной строкой с состоянием POSSIBLY_INVALID, ранее разорванная строка и все последующие с состоянием POSSIBLY_INVALID снова меняют состояние на VALID. Валидность строк, значения которых не являются членами класса TextLineValidity
не изменяются на VALID, но могут измениться на INVALID. Проверьте свойство firstInvalidLine
после внесения любых изменений в текстовый блок, чтобы увидеть, где начинается или возобновляется разрыв строк.
Можно создать искусственные разрывы слов, включив в текст нулевой пробел Unicode (ZWSP). Это может быть полезно для таких языков, как тайский, где для правильного разрыва строк требуется словарь. В проигрыватель Flash Player не встроен такой словарь.
Параметры
previousLine:TextLine (default = null ) — Указывает на ранее короткую строку, которой закрывается абзац. Может быть null , если первая строка короткая.
| |
width:Number (default = 1000000 ) — Задает желаемую ширину строки в пикселах. Реальная ширина может быть меньше.
| |
lineOffset:Number (default = 0.0 ) — Необязательный параметр, задающий разницу в пикселах между началом линии и отступом. Он может использоваться, если строки не выровнены, но при этом необходимо выровнять их отступы. Значение этого параметра по умолчанию 0,0 .
| |
fitSomething:Boolean (default = false ) — Необязательный параметр, который предписывает проигрывателю Flash Player вместить хотя бы один символ в текстовую строку вне зависимости от того, какая задана ширина (даже если она равна нулю или отрицательна, что в остальных случаях приводит к исключению).
|
TextLine — Текстовая строка или null , если текстовый блок пуст или его ширина меньше ширины текстового элемента. Для различения этих случаев проверьте свойство textLineCreationResult текстового блока.
|
ArgumentError — Если элемент TextLine, заданный параметром previousLine , недействителен.
| |
ArgumentError — Если ширина меньше нуля, кроме случаев, когда fitSomething равно true.
| |
ArgumentError — Если значение width больше, чем TextLine.MAX_LINE_WIDTH .
| |
IllegalOperationError — Если один или несколько элементов содержимого текстового блока равны null ElementFormat .
|
См. также
createTextLine()
для создания текстовых строк в текстовом блоке. Проигрыватель выполняет для этого следующие действия:
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 |
Выдает базовое содержимое TextBlock в виде строки XML. Это может пригодиться при автоматическом тестировании, т.к. включает сведения о тексте, формате и визуализации. Опция доступна только в отладчике Flash Player.
Примечание. Содержимое и формат вывода могут измениться в будущем. Adobe не гарантирует обратной совместимости данного метода.
В следующей таблице показаны выходные данные:
Тег | Атрибут | Описание |
---|---|---|
<block> | TextBlock | |
<line | TextLine | |
s= | начальный встроенный элемент запуска | |
l= | ограничение встроенного элемента запуска | |
> | закрытие тега line | |
<run | элементы строки | |
s= | начальный встроенный элемент запуска | |
l= | ограничение встроенного элемента запуска | |
> | закрытие тега run | |
<inter | внутренний элемент | |
cursor= | курсор символа (индекс исходного текста) | |
tcb= | граница типографического кластера | |
wb= | граница слова | |
lbo= | возможный разрыв строки | |
lb= | действительный разрыв строки | |
/> | конец тега inter | |
<char | элемент символа | |
usv= | Скалярное значение в кодировке Юникод | |
/> | конец тега char | |
<glyph | вычисленный или сформированный элемент глифа | |
font= | название шрифта | |
gid= | индекс глифа | |
xa= | xAdvance | |
ya= | yAdvance | |
xp= | xPlacement | |
yp= | yPlacement | |
r= | rotation | |
color= | цвет | |
xP= | xPosition | |
yP= | yPosition | |
attached= | соединены ли два элемента | |
itcbo= | смещения внутренних типографических границ кластера | |
bl= | двусторонний уровень | |
sc= | интервальный класс | |
/> | конец тега glyph | |
<fo | графический элемент | |
id= | идентификатор элемента | |
xa= | xAdvance | |
ya= | yAdvance | |
xp= | xPlacement | |
yp= | yPlacement | |
r= | rotation | |
color= | цвет | |
xP= | xPosition | |
yP= | yPosition | |
lb= | левая граница | |
rb= | правая граница | |
tb= | верхняя граница | |
bb= | нижняя граница | |
itcbo= | смещения внутренних типографических границ кластера | |
bl= | двусторонний уровень | |
sc= | интервальный класс | |
/> | конец тега fo | |
<embeddedRun | встроенный запуск | |
xa= | xAdvance | |
ya= | yAdvance | |
xp= | xPlacement | |
yp= | yPlacement | |
r= | вращение | |
xP= | xPosition | |
yP= | yPosition | |
> | закрытие тега embeddedRun | |
<run> | запуск | |
</run> | окончание тега run | |
</embeddedRun> | закрытие тега embeddedRun | |
<carets | знаки вставки строки | |
s= | начальный встроенный элемент запуска | |
l= | ограничение встроенного элемента запуска | |
> | закрытие тега carets | |
<cursor> | курсор | |
x= | положение по х слева | |
/> | конец тега cursor | |
<cluster | кластер | |
c= | положение по центру | |
s= | начало смещения tc | |
l= | ограничение смещения tc | |
bidi | двусторонний уровень | |
/> | конец тега cluster | |
</carets> | закрытие тега carets | |
</строка> | закрытие тега line | |
</block> | закрытие тега block |
String |
См. также
findNextAtomBoundary | () | метод |
public function findNextAtomBoundary(afterCharIndex:int):int
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Находит индекс следующей границы атома для заданного индекса символа, исключая символ по заданному индексу. Символы между границами атомов вместе формируют один атом в TextLine
, например "e", и надстрочный значок ударения.
Параметры
afterCharIndex:int — Задает индекс символа, после которого нужно искать следующую границу атома.
|
int — Индекс следующей границы атома после заданного индекса символа.
|
RangeError — Указанный индекс лежит вне диапазона.
| |
IllegalOperationError — Строка TextLine, которой принадлежит индексируемый символ, недействительна.
|
См. также
findNextWordBoundary | () | метод |
public function findNextWordBoundary(afterCharIndex:int):int
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Находит индекс следующей границы слова от указанного индекса символа, исключая символ по заданному индексу. Границы слов определяются на основе свойств символов в кодировке Unicode.
Параметры
afterCharIndex:int — Задает индекс символа, после которого нужно искать следующую границу слова.
|
int — Индекс следующей границы слова после заданного индекса символа.
|
RangeError — Указанный индекс лежит вне диапазона.
| |
IllegalOperationError — Строка TextLine, которой принадлежит индексируемый символ, недействительна.
|
findPreviousAtomBoundary | () | метод |
public function findPreviousAtomBoundary(beforeCharIndex:int):int
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Находит индекс предыдущей границы атома для указанного индекса символа, исключая символ по указанному индексу. Символы между границами атомов вместе формируют один атом в TextLine
, например "e", и надстрочный значок ударения.
Параметры
beforeCharIndex:int — Задает индекс символа, до которого нужно искать предыдущую границу атома.
|
int — Индекс предыдущей границы атома до заданного индекса символа.
|
RangeError — Указанный индекс лежит вне диапазона.
| |
IllegalOperationError — Строка TextLine, которой принадлежит индексируемый символ, недействительна.
|
См. также
findPreviousWordBoundary | () | метод |
public function findPreviousWordBoundary(beforeCharIndex:int):int
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Находит индекс предыдущей границы слова для указанного индекса символа, исключая символ по указанному индексу. Границы слов определяются на основе свойств символов в кодировке Unicode.
Параметры
beforeCharIndex:int — Задает индекс символа, до которого нужно искать предыдущую границу слова.
|
int — Индекс предыдущей границы слова до заданного индекса символа.
|
RangeError — Указанный индекс лежит вне диапазона.
| |
IllegalOperationError — Строка TextLine, которой принадлежит индексируемый символ, недействительна.
|
getTextLineAtCharIndex | () | метод |
public function getTextLineAtCharIndex(charIndex:int):TextLine
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Возвращает элемент TextLine, содержащий символ, заданный параметром charIndex
.
Параметры
charIndex:int — Отсчитываемое от нуля значение индекса для символа (например, первый символ — 0, второй символ — 1 и т.д.)
|
TextLine — Элемент TextLine, содержащий символ с индексом charIndex .
|
RangeError — Указанный индекс символа находится за пределами диапазона.
|
releaseLines | () | метод |
public function releaseLines(firstLine:TextLine, lastLine:TextLine):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Удаляет диапазон текстовых строк из списка строк, поддерживаемых текстовым блоком TextBlock. Это позволяет очищать строки, если не существует других ссылок.
Задает значение членов textBlock
, nextLine
и previousLine
удаленных строк null
. Задает значение валидности
удаленных строк и следующих за ними в блоке TextBlock TextLineValidity.INVALID
.
Параметры
firstLine:TextLine — Указывает первую строку для освобождения.
| |
lastLine:TextLine — Указывает последнюю строку для освобождения.
|
ArgumentError — Если TextLine, заданная параметрами firstLine или lastLine не включена в список текстовых строк, поддерживаемых блоком.
|
См. также
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(); } } }