Справочник по ActionScript® 3.0 для платформы Adobe® Flash®
Домашняя страница  |  Скрыть список пакетов и классов |  Пакеты  |  Классы  |  Что нового  |  Указатель  |  Приложения  |  Почему по-английски?
Фильтры: Получение данных с сервера...
Получение данных с сервера...
flash.text.engine 

TextBlock  - AS3

Пакетflash.text.engine
Классpublic final class TextBlock
НаследованиеTextBlock Inheritance Object

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5, Flash Lite 4

Класс TextBlock является базовым для создания объектов TextLine, которые можно визуализировать, добавляя в список отображения.

Класс TextBlock должен содержать один абзац, так как алгоритмы двунаправленности и разрывов строк в Юникод одновременно могут обрабатывать один абзац. Для приложений, создающих несколько абзацев текста, используйте язык разметки или анализ текста, чтобы разбить текст на абзацы и создать для каждого из них объект TextBlock.

Объект TextBlock сохраняет свое содержимое в свойстве content, которое является экземпляром класса ContentElement. Так как невозможно создать экземпляр класса ContentElement, задайте для content экземпляр одного из его подклассов: TextElement, GraphicElement или GroupElement. Используйте TextElement для чисто текстового содержимого, GraphicElement для изображений или графического содержимого и GroupElement для содержимого, в котором сочетаются объекты TextElement, GraphicElement и другие объект GroupElement. Подробные сведения об управлении форматированными фрагментами текста, встроенными фрагментами и графическими элементами см. описание класса ContentElement.

Создав экземпляр TextBlock и настроив его свойство content, вызовите метод createTextLine(), чтобы создать строки текста, являющиеся экземплярами класса TextLine.

Посмотреть примеры

Связанные элементы API



Общедоступные свойства
 СвойствоОпределено
  applyNonLinearFontScaling : Boolean
Указывает, что требуется улучшить внешний вид экрана за счет качества печати WYSIWYG («получаешь то, что видишь»).
TextBlock
  baselineFontDescription : FontDescription
Шрифт, который используется для определения базовых линий для всех строк, созданных из блока, независимо от их содержимого.
TextBlock
  baselineFontSize : Number
Размер шрифта, который используется для вычисления базовых линий для строк, создаваемых из блока.
TextBlock
  baselineZero : String
Задает, какая базовая линия находится в точке с координатой у=0 для строк, созданных из этого блока.
TextBlock
  bidiLevel : int
Указывает уровень встраивания двунаправленных абзацев для текстового блока.
TextBlock
 Inheritedconstructor : 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
  
findNextAtomBoundary(afterCharIndex:int):int
Находит индекс следующей границы атома для заданного индекса символа, исключая символ по заданному индексу.
TextBlock
  
findNextWordBoundary(afterCharIndex:int):int
Находит индекс следующей границы слова от указанного индекса символа, исключая символ по заданному индексу.
TextBlock
  
Находит индекс предыдущей границы атома для указанного индекса символа, исключая символ по указанному индексу.
TextBlock
  
Находит индекс предыдущей границы слова для указанного индекса символа, исключая символ по указанному индексу.
TextBlock
  
Возвращает элемент TextLine, содержащий символ, заданный параметром charIndex.
TextBlock
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
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
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
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


Пример  ( Использование этого примера )
В этом примере показан та же текстовая строка (логический порядок: a, b, c, alef, bet, gimel) визуализирована сначала с четным значением 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 обычно используется для восточно-азиатского текста. Чтобы создать абзац вертикального японского текста, выполните следующие действия.

  1. Задайте свойству TextBlock.lineRotation значение TextRotation.ROTATE_90.
  2. Оставьте для свойства 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


Пример  ( Использование этого примера )
В этом примере в TextBlock добавляется японский текст, и свойству 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 с именем 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

TextBlockExample.as

В этом примере демонстрируется три абзаца TextBlock японского и английского текста. Японский текст из кодов символов Юникод преобразуется в строки. При нажатии кнопки пример поворачивает текст из горизонтального в вертикальное положение или наоборот.
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();
        }
    }
}




[ X ]Почему по-английски?
Содержимое Справочника ActionScript 3.0 отображается на английском языке

Не все части Справочника ActionScript 3.0 переводятся на все языки. Если какой-то текстовый элемент не переведен, он отображается на английском языке. Например, компонент ga.controls.HelpBox не переведен ни на один из языков. Это значит, что в русской версии справки компонент ga.controls.HelpBox будет отображаться на английском языке.