flash.text.engineTextLine Класс TextLine служит для отображения текста, добавленного в список отображения.flash.display:DisplayObjectContainer Класс TextLine служит для отображения текста, добавленного в список отображения.

Нельзя создать объект TextLine непосредственно из кода ActionScript. При вызове функции new TextLine(), выдается исключение. Чтобы создать объект TextLine, вызовите метод createTextLine() объекта TextBlock.

Объект TextLine содержит минимальную информацию, необходимую для визуализации его содержимого и для обеспечения интерактивности с помощью некоторых методов, которые описывают свойства атомов строки. Термин «атом» относится к графическим элементам и символам (включая группы объединенных символов), неделимым сущностям в строке.

После завершения обычной отправки событий для строки текста, если она действительна, ее события зеркально отображаются в отправителях событий, заданных в свойствах eventMirror объектов элементов содержимого, которые передаются текстовой строке. Эти объекты записываются в свойстве TextLine.mirrorRegions. События не зеркалируются, если распространение событий завершилось ошибкой или остановлено, или если строка недействительна.

Зеркалирование событий мыши является особым случаем. Поскольку зеркальные области в действительности не являются экранными объекты, для них имитируются события mouseOver и mouseOut. События rollOver и rollOut не имитируются. Все естественным образом возникающие события mouseOver, mouseOut, rollOver и rollOut (в отношении текстовой строки или нижестоящего элемента текстовой строки) игнорируются – их зеркалирование не выполняется.

Исходной точкой объекта текстовой строки является начало базовой линии. Если не задать положение по вертикали (свойство y) для строки, содержащей латинский текст на базовой линии прямого шрифта, только подстрочные элементы литер появляются под верхним краем объекта Sprite, в который добавляется текстовая строка. См. следующий рисунок.

Класс TextLine имеет несколько предков: классы DisplayObjectContainer, InteractiveObject, DisplayObject и EventDispatcher, – от которых он наследует свойства и методы. Следующие унаследованные свойства не применимы к объектам TextLine:

  • contextMenu
  • focusRect
  • tabChildren
  • tabEnabled
  • tabIndex

При попытке задать эти свойства текстовый процессор выдает ошибку: IllegalOperationError. Эти свойства можно считывать, но они всегда содержат значения по умолчанию.

В примере показаны разные текстовые строки и шаги по атомам в текстовом блоке с использованием для обрамления каждого из них getAtomBounds().
  1. Добавьте компонент NumericStepper в библиотеку.
  2. Сохраните этот код под именем TextLineExample.as в том же каталоге, где и FLA-файл.
  3. В окне «Свойства» FLA-файла задайте класс TextLineExample.
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; import flash.text.engine.FontPosture; import flash.text.engine.FontWeight; import fl.controls.NumericStepper; import flash.events.Event; import flash.geom.Rectangle; public class TextLineExample extends Sprite { private var atomStepper:NumericStepper = new NumericStepper(); private var atomDataContainer:Sprite; private var fontDescriptionItalic:FontDescription = new FontDescription("Arial", FontWeight.NORMAL, FontPosture.ITALIC); private var fontDescriptionNormal:FontDescription = new FontDescription("Arial", FontWeight.NORMAL , FontPosture.NORMAL); private var textBlock:TextBlock = new TextBlock(); private var textLine:TextLine; public function TextLineExample():void { var myText:String = "I am a TextElement, created from a String and assigned " + "to the content property of a TextBlock. From the text block, " + "the createTextLine() method created these lines, 300 pixels wide, " + "for display." ; atomStepper.minimum = 0; atomStepper.value = 0; atomStepper.width = 50; addChild(atomStepper); atomStepper.x = 20; atomStepper.y = 120; atomStepper.addEventListener(Event.CHANGE, nsChange); var directions:String = "Click up / down arrows to frame atoms in text block above."; var formatItalic:ElementFormat = new ElementFormat(fontDescriptionItalic); formatItalic.fontSize = 12; var textElement1:TextElement = new TextElement(directions, formatItalic); textBlock.content = textElement1; createLines(textBlock, 15, 160, 400, this); var formatNormal:ElementFormat = new ElementFormat(fontDescriptionNormal); formatNormal.fontSize = 16; var textElement2:TextElement = new TextElement(myText, formatNormal); textBlock.content = textElement2; createLines(textBlock, 15.0, 20.0, 300, this); textLine = textBlock.firstLine; atomStepper.maximum = textLine.atomCount - 1; showAtom(textLine, 0); } private function nsChange(event:Event):void { removeAtom(textLine); if (atomStepper.value == textLine.atomCount - 1) { if(textLine != textBlock.lastLine) { textLine = textLine.nextLine; atomStepper.maximum = textLine.atomCount - 1; atomStepper.value = 0; } } showAtom(textLine, atomStepper.value); } private function createLines(textBlock, startX, startY, width, container) { var textLine:TextLine = textBlock.createTextLine (null, width); while (textLine) { textLine.x = startX; textLine.y = startY; startY += textLine.height + 2; container.addChild(textLine); textLine = textBlock.createTextLine (textLine, width); } } private function showAtom(textLine, i):void { var box:Sprite = new Sprite(); var mcGraphics = box.graphics; var bounds:Rectangle = textLine.getAtomBounds(i); mcGraphics.lineStyle(1, 0xFF0000, 1.0); mcGraphics.drawRect(bounds.left, bounds.top, bounds.width, bounds.height); textLine.userData = textLine.addChild(box); displayAtomData(textLine,i); } private function displayAtomData(textLine, i) { if(atomDataContainer != null) removeChild(atomDataContainer); atomDataContainer=new Sprite(); var format = new ElementFormat(fontDescriptionNormal); format.color = 0x00000FF; var n:int = 0; var nxtY:Number = 0; var atomInfo:String = "value of getAtomBidiLevel() is: " + textLine.getAtomBidiLevel(i)+"\n" +"value of getAtomCenter() is: " + textLine.getAtomCenter(i)+"\n" +"value of getAtomIndexAtCharIndex() is: " + textLine.getAtomIndexAtCharIndex(i)+"\n" +"value of getAtomTextBlockBeginIndex() is: " + textLine.getAtomTextBlockBeginIndex(i)+"\n" +"value of getAtomTextBlockEndIndex() is: " + textLine.getAtomTextBlockEndIndex(i)+"\n" +"value of getAtomTextRotation() is: " + textLine.getAtomTextRotation(i)+"\n"; var atomtextBlock:TextBlock = new TextBlock(); var textElement3:TextElement = new TextElement(atomInfo, format); atomtextBlock.content = textElement3; createLines(atomtextBlock,20,200,500, atomDataContainer) addChild(atomDataContainer); } private function removeAtom(textLine):void { textLine.removeChild(textLine.userData); } } }
ContentElement.eventMirrorTextBlock.createTextLine()TextLineValiditydump Выдает базовое содержимое TextLine в виде строки XML.String Выдает базовое содержимое TextLine в виде строки XML. Это может пригодиться при автоматическом тестировании, так как включает сведения о тексте, форматировании и компоновке.

Следующий код описывает вывод.

	 [LINE]
	 <line ascent=[Number] descent=[Number] rotation=[int]>
	 	<elements>
	 		[0-N ELEMENT]
	 	</elements>
	 	<clusters>
	 		[0-N CLUSTER]
	 	</clusters>
	 </line>
	 
	 [ELEMENT]
	 <glyph isEmbedded=[Boolean] fontName=[String] isBold=[Boolean] isItalic=[Boolean] gid=[int] pointSize=[Number] x=[Number] y=[Number] rotation=[int]/>
	 or
	 <graphic child=[int] x=[Number] y=[Number] rotation=[int]/>
	 or
	 <embeddedRun x=[Number] y=[Number]>
	 	[LINE]
	 </embeddedRun>
	 
	 [CLUSTER]
	 <cluster xLeft=[Number] xCenter=[Number] xRight=[Number] cursorOnLeft=[Boolean] cursorOnRight=[Boolean] wordBoundaryOnLeft=[Boolean] wordBoundaryOnRight=[Boolean]/>
	 

Примечание. Содержимое и формат выхода этого метода могут в будущем измениться. Adobe не гарантирует обратной совместимости данного метода.

TextBlock.dump()
flushAtomData Этот метод считается устаревшим и не имеет никакого эффекта.В настоящее время он не работает. Этот метод не рекомендуется и не имеет никакого эффекта. Данные атома сжаты и не влияют на эффективность управления памятью. TextBlock.dump()getAtomBidiLevel Определяет двусторонний уровень атома по заданному индексу.Указанный индекс атома лежит вне диапазона. RangeErrorRangeErrorvalidity строки является TextLineValidity.STATIC. IllegalOperationErrorflash.errors:IllegalOperationErrorДвунаправленный уровень атома по индексу atomIndex. intatomIndexintОтсчитываемое от нуля значение индекса атома (например, первый атом имеет индекс 0, второй — 1 и т. д.). Определяет двусторонний уровень атома по заданному индексу. Определяется комбинацией TextBlock.bidiLevel и двунаправленных свойств Юникод для символов, образующих строку.

Например, если текстовый блок начинается с текста на иврите, необходимо задать для TextBlock.bidiLevel значение 1, установив по умолчанию направление справа налево. Если в тексте имеется цитата на английском (слева направо), для этого текста AtomBidiLevel имеет значение 2. Если в английском тексте включен фрагмент на арабском (справа налево), то для него AtomBidiLevel имеет значение 3. Если в арабском фрагменте встречается число (слева направо), AtomBidiLevel для числа имеет значение 4. Не имеет значения, в какой строке оказываются атомы. Атомы иврита имеют AtomBidiLevel 1, атомы английского — AtomBidiLevel 2, атомы арабского — AtomBidiLevel 3, а атомы чисел — AtomBidiLevel 4.

TextBlock.bidiLevel
getAtomBounds Определяет границы атома по указанному индексу, связанному с текстовой строкой.Указанный индекс атома лежит вне диапазона. RangeErrorRangeErrorvalidity строки является TextLineValidity.STATIC. IllegalOperationErrorflash.errors:IllegalOperationErrorГраницы атома по индексу atomIndex. flash.geom:RectangleatomIndexintОтсчитываемое от нуля значение индекса атома (например, первый атом имеет индекс 0, второй — 1 и т. д.). Определяет границы атома по указанному индексу, связанному с текстовой строкой. Границы заданного атома состоят из положения по горизонтали (x) в строке, положения по вертикали (y) в строке, ширины (w) и высоты (h). Все значения в пикселях. getAtomCenter Определяет центр атома, согласно изменениями, вдоль опорной линии по заданному индексу.Указанный индекс атома лежит вне диапазона. RangeErrorRangeErrorvalidity строки является TextLineValidity.STATIC. IllegalOperationErrorflash.errors:IllegalOperationErrorЦентр атома по индексу atomIndex. NumberatomIndexintОтсчитываемое от нуля значение индекса атома (например, первый атом имеет индекс 0, второй — 1 и т. д.). Определяет центр атома, согласно изменениями, вдоль опорной линии по заданному индексу. getAtomGraphic Определяет график атома по заданному индексу или null, если атом является символом.Указанный индекс атома лежит вне диапазона. RangeErrorRangeErrorvalidity строки является TextLineValidity.STATIC. IllegalOperationErrorflash.errors:IllegalOperationErrorГрафик атома по индексу atomIndex. flash.display:DisplayObjectatomIndexintОтсчитываемое от нуля значение индекса атома (например, первый атом имеет индекс 0, второй — 1 и т.д.). Определяет график атома по заданному индексу или null, если атом является символом. getAtomIndexAtCharIndex Возвращает индекс атома, содержащего символ, заданный параметром charIndex или -1, если символ не входит ни в один атом в строке.validity строки является TextLineValidity.STATIC. IllegalOperationErrorflash.errors:IllegalOperationErrorИндекс атома, содержащего символ по индексу charIndex. Возвращает -1, если символ не входит ни в один атом строки. intcharIndexintОтсчитываемое от нуля значение индекса для символа (например, первый символ — 0, второй символ — 1 и т. д.). Возвращает индекс атома, содержащего символ, заданный параметром charIndex или -1, если символ не входит ни в один атом в строке. Параметр charIndex относится ко всему содержимому текстового блока, в который входит строка. getAtomIndexAtPoint Возвращает индекс атома в точке, заданной параметрами x и y или -1, если в этой точке нет атома.validity строки является TextLineValidity.STATIC. IllegalOperationErrorflash.errors:IllegalOperationErrorИндекс атома под точкой. Возвращает -1, если точка не переходит ни один из атомов. intstageXNumberГлобальная координата x тестируемой точки. stageYNumberГлобальная координата y тестируемой точки. Возвращает индекс атома в точке, заданной параметрами x и y или -1, если в этой точке нет атома.

Этот метод получает глобальные координаты, чтобы его можно было легко использовать со свойствами MouseEvent.stageX и MouseEvent.stageY.

getAtomTextBlockBeginIndex Определяет индекс начала текстового блока атома по заданному индексу.Указанный индекс атома лежит вне диапазона. RangeErrorRangeErrorvalidity строки является TextLineValidity.STATIC. IllegalOperationErrorflash.errors:IllegalOperationErrorИндекс начала текстового блока атома atomIndex. intatomIndexintОтсчитываемое от нуля значение индекса атома (например, первый атом имеет индекс 0, второй — 1 и т. д.). Определяет индекс начала текстового блока атома по заданному индексу. getAtomTextBlockEndIndex Определяет индекс конца текстового блока атома по заданному индексу.Указанный индекс атома лежит вне диапазона. RangeErrorRangeErrorvalidity строки является TextLineValidity.STATIC. IllegalOperationErrorflash.errors:IllegalOperationErrorИндекс конца текстового блока атома atomIndex. intatomIndexintОтсчитываемое от нуля значение индекса атома (например, первый атом имеет индекс 0, второй — 1 и т. д.). Определяет индекс конца текстового блока атома по заданному индексу. getAtomTextRotation Определяет вращение атома по заданному индексу.Указанный индекс атома лежит вне диапазона. RangeErrorRangeErrorvalidity строки является TextLineValidity.STATIC. IllegalOperationErrorflash.errors:IllegalOperationErrorВращение атома по индексу atomIndex. StringatomIndexintОтсчитываемое от нуля значение индекса атома (например, первый атом имеет индекс 0, второй — 1 и т. д.). Определяет вращение атома по заданному индексу. Для этого свойства используются константы TextRotation. Поворот атома является суммой поворотов элемента и строки. Основным назначением является настройка ориентации каретки (курсора) при взаимодействии с объектом TextLine. ElementFormat.textRotationgetAtomWordBoundaryOnLeft Указывает, лежит ли граница слова слева от атома по заданному индексу.Указанный индекс атома лежит вне диапазона. RangeErrorRangeErrorvalidity строки является TextLineValidity.STATIC. IllegalOperationErrorflash.errors:IllegalOperationErrorЛогическое значение, указывающее, находится ли граница слова слева от атома в atomIndex. BooleanatomIndexintОтсчитываемое от нуля значение индекса атома (например, первый атом имеет индекс 0, второй — 1 и т. д.). Указывает, лежит ли граница слова слева от атома по заданному индексу. Границы слова определяются на основе свойств Unicode символов, переданных строке. getBaselinePosition Получает положение заданной базовой линии относительно TextBlock.baselineZero.Заданный языковой стандарт baseline не является элементом TextBaseline. ArgumentErrorArgumentErrorПоложение заданной базовой линии относительно TextBlock.baselineZero. NumberbaselineStringБазовая линия, относительно которой задано положение. Используйте значения TextBaseline. Получает положение заданной базовой линии относительно TextBlock.baselineZero. TextBlock.baselineZeroTextBaselinegetMirrorRegion Возвращает первый TextLineMirrorRegion в строке, чье свойство mirror совпадает с параметром mirror или null, если нет совпадений.Первый TextLineMirrorRegion в строке, чье свойство mirror совпадает с заданным значением или null, если нет совпадений. flash.text.engine:TextLineMirrorRegionmirrorflash.events:EventDispatcherЗеркальный объект EventDispatcher для поиска. Возвращает первый TextLineMirrorRegion в строке, чье свойство mirror совпадает с параметром mirror или null, если нет совпадений.

Даже один TextElement может произвести несколько объектов TextLineMirrorRegion на одной или более строках в зависимости от уровня двунаправленности и разрывов строк. Свойства nextRegion и previousRegion связывают все зеркальные области, генерируемые одним элементом текста.

TextLineMirrorRegionContentElement.eventMirror
MAX_LINE_WIDTH Максимальная запрашиваемая ширина строки текста в пикселях.1000000int Максимальная запрашиваемая ширина строки текста в пикселях. Метод TextBlock.createTextLine() использует эту константу в качестве значения по умолчанию для параметра width, если не задано другое значение. TextBlock.createTextLine()userData Дает возможность приложению связать произвольные данные с текстовой строкой. Дает возможность приложению связать произвольные данные с текстовой строкой. ascent Указывает число пикселей от базовой линии до верхней точки самых высоких символов в строке.Number Указывает число пикселей от базовой линии до верхней точки самых высоких символов в строке. Для объекта TextLine, содержащего только графический элемент, ascent имеет значение 0. atomCount Число атомов в строке, которое представляет число невидимых элементов, включая пробелы и графические элементы.intvalidity строки является TextLineValidity.STATIC. IllegalOperationErrorflash.errors:IllegalOperationError Число атомов в строке, которое представляет число невидимых элементов, включая пробелы и графические элементы. descent Указывает число пикселей от базовой линии до нижней точки символов с самыми низким выносным элементом в строке.Number Указывает число пикселей от базовой линии до нижней точки символов с самыми низким выносным элементом в строке. Для объекта TextLine, содержащего только графический элемент, descent имеет значение 0. hasGraphicElement Указывает, содержит ли текстовая строка графические элементы.Boolean Указывает, содержит ли текстовая строка графические элементы. GraphicElementhasTabs Указывает, содержит ли текстовая строка табуляцию.Boolean Указывает, содержит ли текстовая строка табуляцию. mirrorRegions Объект Vector содержащий объекты TextLineMirrorRegion, связанные со строкой, или null, если таких не существует. Объект Vector содержащий объекты TextLineMirrorRegion, связанные со строкой, или null, если таких не существует. ContentElement.eventMirrorTextLineMirrorRegionnextLine Следующий объект TextLine в TextBlock или null, если текущая строка является последней в блоке или если строка имеет validity TextLineValidity.STATIC.flash.text.engine:TextLine Следующий объект TextLine в TextBlock или null, если текущая строка является последней в блоке или если строка имеет действительность TextLineValidity.STATIC. previousLinepreviousLine Предыдущий объект TextLine в TextBlock или null, если текущая строка является первой в блоке или если строка имеет действительность TextLineValidity.STATIC.flash.text.engine:TextLine Предыдущий объект TextLine в TextBlock или null, если текущая строка является первой в блоке или если строка имеет действительность TextLineValidity.STATIC. nextLinerawTextLength Длина необработанного текста в блоке, который стал строкой, включая символы U+FDEF, представляющие графические элементы и концевые пробелы, которые являются частью строки, но не отображаются.int Длина необработанного текста в блоке, который стал строкой, включая символы U+FDEF, представляющие графические элементы и концевые пробелы, которые являются частью строки, но не отображаются. TextBlockContentElement.rawTextspecifiedWidth Ширина, переданная методу TextBlock.createTextLine() при создании строки.Number Ширина, переданная методу TextBlock.createTextLine() при создании строки. Это значение помогает определить, требует ли внесенное изменения повторной разбивки строки. TextBlock.createTextLine()textWidthunjustifiedTextWidthtextBlockBeginIndex Индекс первого символа в строка в необработанном тексте блока.int Индекс первого символа в строка в необработанном тексте блока. TextBlocktextBlock Объект TextBlock, содержащий эту строку текста, или 0, если для строки задана достоверность TextLineValidity.STATIC, то есть связь между строкой и TextBlock разорвана.flash.text.engine:TextBlock Объект TextBlock, содержащий эту строку текста, или 0, если для строки задана достоверность TextLineValidity.STATIC, то есть связь между строкой и TextBlock разорвана. TextBlockTextLineValiditytextHeight Логическая высота текстовой строки, равная сумме значений ascent и descent.Number Логическая высота текстовой строки, равная сумме значений ascent и descent. Чтобы получить фактическую высоту, используйте унаследованное свойство height.

Это значение рассчитывается по разнице между базовыми строками, окружающими строку, — идеографическими верхней и нижней, либо верхним выносным элементом и нижним выносным элементом в зависимости от того, является TextBlock.baselineZero идеографическим или нет. Графические элементы на учитываются при расчете этих базовых строк.

DisplayObject.height
textWidth Логическая ширина текстовой строки, то есть ширина, используемая текстовым процессором для раскладки строки.Number Логическая ширина текстовой строки, то есть ширина, используемая текстовым процессором для раскладки строки. Используйте унаследованное свойство width, чтобы получить фактическую ширину ограничительного прямоугольника всех нарисованных пикселей. В данном примере отображается строка один раз в обычном начертании и один раз в курсивном, и для каждого случая отслеживаются значения свойств specifiedWidth, textWidth и width. Получены следующие результаты отслеживания:
  • specifiedWidth: 500
  • textWidth: 268.9921875
  • width: 269
  • specifiedWidth: 500
  • textWidth: 267,52734375
  • width: 267,55
package { import flash.display.Sprite; import flash.text.engine.TextBlock; import flash.text.engine.TextElement; import flash.text.engine.TextLine; import flash.text.engine.FontDescription; import flash.text.engine.ElementFormat; import flash.text.engine.FontPosture; public class TextLine_textWidthExample extends Sprite { public function TextLine_textWidthExample() { var str:String = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, "; var yPos:Number = 20; var fontDescription:FontDescription = new FontDescription(); var textBlock:TextBlock = new TextBlock(); fontDescription.fontPosture = FontPosture.NORMAL; var format:ElementFormat = new ElementFormat(fontDescription, 12); var textElement:TextElement = new TextElement(str, format); textBlock.content = textElement; createLine(textBlock, yPos); var fontDescriptionItalic = fontDescription.clone(); fontDescriptionItalic.fontPosture = FontPosture.ITALIC; var formatItalic = new ElementFormat(fontDescriptionItalic, 12); textElement = new TextElement(str, formatItalic); textBlock.content = textElement; createLine(textBlock, yPos + 20); } private function createLine(textBlock:TextBlock, yPos:Number):void { var textLine:TextLine = textBlock.createTextLine (null, 500); trace("specifiedWidth is: " + textLine.specifiedWidth); trace("textWidth is: " + textLine.textWidth); trace("width is: " + textLine.width); addChild(textLine); textLine.x = 15; textLine.y = yPos; } } }
specifiedWidthDisplayObject.width
totalAscent Указывает число пикселов от базовой линии до верхней точки самых высоких символов или графики в строке.Number Указывает число пикселов от базовой линии до верхней точки самых высоких символов или графики в строке. totalDescent Указывает число пикселов от базовой линии до нижней точки символов с самым низким выносным элементом или самой низкой графики в строке.Number Указывает число пикселов от базовой линии до нижней точки символов с самым низким выносным элементом или самой низкой графики в строке. totalHeight Общая логическая высота текстовой строки, которая равна сумме totalAscent + totalDescent.Number Общая логическая высота текстовой строки, которая равна сумме totalAscent + totalDescent. unjustifiedTextWidth Ширина строки, если она не выровнена.Number Ширина строки, если она не выровнена. Для невыровненного текста это значение совпадает с textWidth. Для выровненного текста это значение представляет длину, которую бы строка имела без выравнивания, а textWidth представляет фактическую ширину строки. Например, когда следующая строка выравнивается и передается методу TextBlock.createTextLine() с шириной 500, ее фактическая ширина составляет 500, а ширина без выравнивания — 268,9921875. Когда строка в следующем примере выравнивается и передается методу TextBlock.createTextLine() с шириной 500, ее фактическая ширина составляет 500, а ширина без выравнивания — 268,9921875. import flash.display.Sprite; import flash.text.engine.TextBlock; import flash.text.engine.TextElement; import flash.text.engine.TextLine; import flash.text.engine.FontDescription; import flash.text.engine.ElementFormat; import flash.text.engine.SpaceJustifier; import flash.text.engine.LineJustification; var str:String = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, "; var fontDescription:FontDescription = new FontDescription(); var textBlock:TextBlock = new TextBlock(); var format:ElementFormat = new ElementFormat(fontDescription, 12); var textElement:TextElement = new TextElement(str, format); textBlock.content = textElement; var spaceJustifier:SpaceJustifier = new SpaceJustifier("en", LineJustification.ALL_INCLUDING_LAST); textBlock.textJustifier = spaceJustifier; var textLine:TextLine = textBlock.createTextLine(null, 500); textLine.y = 20; addChild(textLine); trace("textWidth value is: " + textLine.textWidth); // 500.00244140625 trace("unjustifiedTextWidth is: " + textLine.unjustifiedTextWidth); // 268.9921875 EastAsianJustifierLineJustificationSpaceJustifierspecifiedWidthtextWidthvalidity Указывает текущую валидность текстовой строки.StringЕсли текущее значение является TextLineValidity.STATIC. ArgumentErrorArgumentErrorЕсли текущее значение является TextLineValidity.INVALID, а новое значение не является TextValidity.STATIC. ArgumentErrorArgumentErrorЕсли текущее значение является TextLineValidity.POSSIBLY_INVALID, а новое значение является TextLineValidity.VALID. ArgumentErrorArgumentErrorЕсли новое значение является TextLineValidity.POSSIBLY_INVALID. ArgumentErrorArgumentError Указывает текущую действительность текстовой строки. Значения для этого свойства находятся в элементах класса TextLineValidity. Это свойство должно задаваться по следующим правилам.

Строке присваивается значение USER_INVALID, если действительность имеет строковое значение, не являющееся элементом класса TextLineValidity. USER_INVALID — это абстракция, используемая здесь для представления подобных значений.

При изменении содержимого объекта TextBlock среда выполнения Flash помечает затронутые текстовые строки, а также предшествующую и следующую строки как INVALID. Предшествующая строка должна помечаться как недействительная, когда изменение позволяет ей включить в себя часть содержимого, которая раньше находилась в первой затронутой строке.

Вновь разбитые строки всегда помечаются как VALID. Среда выполнения Flash может изменять следующие строки с VALID на POSSIBLY_INVALID или INVALID. Он может менять строки с POSSIBLY_INVALID на VALID, если разрывы строк совпадают, или на INVALID, если нет.

Код приложения может изменить строки с VALID на INVALID или USER_INVALID, а также с USER_INVALID на VALID. Код приложения не может помечать строки как POSSIBLY_INVALID.

Код приложения может пометить любую строку как STATIC. В результате этого элемент block получает значение null. Все графические элементы в текстовой строке с пометкой STATIC удаляются, и для них восстанавливаются родительские отношения, если они являются частью новой текстовой строки, оторванной от текстового блока, к которому сначала принадлежала исходная строка STATIC.

TextBlock.firstInvalidLineTextLineValidity
TabStop Класс TabStop представляет свойства позиции табуляции в текстовом блоке.Object Класс TabStop представляет свойства позиции табуляции в текстовом блоке. Позиции табуляции назначаются в виде Vector объектов TabStop свойству TextBlock.tabStops.

Если определить свойства объекта TabStop после его применения к TextBlock, объект TextBlock не становится недействительным.

В данном примере иллюстрируются четыре параметра выравнивания позиции табуляции — START, CENTER, DECIMAL и END. package { import flash.text.engine.*; import flash.display.Sprite; public class TabStopExample extends Sprite { public function TabStopExample():void { var container:Sprite = new Sprite(); var english:ElementFormat = new ElementFormat(); english.fontDescription = new FontDescription("Arial"); english.fontSize = 16; english.locale = "en"; var tabStops:Vector.<TabStop> = new Vector.<TabStop>(); tabStops.push( new TabStop(TabAlignment.START, 20), new TabStop(TabAlignment.CENTER, 120), new TabStop(TabAlignment.DECIMAL, 220, "."), new TabStop(TabAlignment.END, 320) ); var textBlock:TextBlock = new TextBlock(); textBlock.content = new TextElement( "\tstart\tcenter\tdeci.mal\tend\n" + "\tl\tl\t3.4\tl\n" + "\tlm\tlm\t234.56\tlm\n" + "\tlmn\tlmn\t12345678.34567\tlmn\n" , english); textBlock.tabStops = tabStops; var y:Number = 60; var previousTextLine:TextLine = null; var textLine:TextLine; var i:int; var tabOrigin:Number = 100; for (i = 0; i < 4; i++) { textLine = textBlock.createTextLine(previousTextLine, 1000, 0); textLine.x = 20; textLine.y = y; container.addChild(textLine); y += 25; previousTextLine = textLine; } addChild(container); } } }
TextBlock.tabStopsTabAlignmentTabStop Создает новый ограничитель TabStop.Заданная локаль alignment не является членом TabAlignment. ArgumentErrorArgumentErroralignmentStringstartВыравнивание табуляции для этого отступа. Действительные значения для этого свойства находятся в членах класса TabAlignment. Значение по умолчанию равно TabAlignment.START. positionNumber0.0Положение отступа в пикселях. По умолчанию используется значение 0.0. decimalAlignmentTokenStringВыравнивание, которое используется, если alignment равно TabAlignment.DECIMAL, значение по умолчанию "". Создает новый ограничитель TabStop. TabAlignmentalignment Задает выравнивание для данной позиции табуляции.StringЕсли задано значение, не являющееся элементом TabAlignment. ArgumentErrorArgumentError Задает выравнивание для данной позиции табуляции. Для определения этого свойства используются значения класса TabAlignment.

Значение по умолчанию равно TabAlignment.START.

Используйте аргумент lineOffset для TextBlock.createTextLine(), чтобы корректировать табуляцию, если исходная точка строки не выровнена по другим строкам, использующим те же позиции табуляции.

Используйте следующие константы класса TabAlignment, чтобы задать значение для этого свойства.

Строковое значениеОписаниеTabAlignment.STARTСвойство position определяет количество пикселей от начала текстовой строки до точки start текста с табуляцией.TabAlignment.CENTERСвойство position определяет количество пикселей от начала текстовой строки до точки center текста с табуляцией.TabAlignment.ENDСвойство position определяет количество пикселей от начала текстовой строки до точки end текста с табуляцией.TabAlignment.DECIMALСвойство position определяет количество пикселей от начала текстовой строки до метки выравнивания.
TabAlignmentTextBlock.createTextLine()
decimalAlignmentToken Задает метку выравнивания, которая должна использоваться вместе со свойством alignment в значении TabAlignment.DECIMAL.String Задает метку выравнивания, которая должна использоваться вместе со свойством alignment в значении TabAlignment.DECIMAL. Это значение является объектом String в текстовой строке.

По умолчанию используется значение "".

TabAlignment.DECIMAL
position Место позиции табуляции (в пикселях) относительно начала текстовой строки.NumberЕсли задано значение меньше 0,0. ArgumentErrorArgumentError Место позиции табуляции (в пикселях) относительно начала текстовой строки.

Значением по умолчанию является 0,0.

FontLookup Класс FontLookup является перечислением констант, используемых вместе с FontDescription.fontLookup.Object Класс FontLookup является перечислением констант, используемых вместе с FontDescription.fontLookup. FontDescription.fontLookupDEVICE Используется для указания поиска шрифтов устройства.deviceString Используется для указания поиска шрифтов устройства. Среда выполнения Flash использует шрифты, установленные в системе, в которой работает приложение.

Использование шрифтов устройства сокращает размер ролика, так как в файл не включаются данные шрифтов.

Текст, визуализируемый с помощью шрифтов устройства, не всегда отображается одинаково в разных системах и на разных платформах, так как среда выполнения Flash использует шрифты, установленные в системе.

EMBEDDED_CFF Используется для обозначения поиска встроенных шрифтов CFF (компактный формат шрифтов).embeddedCFFString Используется для обозначения поиска встроенных шрифтов CFF (компактный формат шрифтов). Среда выполнения Flash использует контуры шрифтов, встроенные в опубликованное приложение.

Текст, визуализируемый с помощью встроенных шрифтов, всегда отображаются с выбранным шрифтом, независимо от того, установлен он в воспроизводящей системе или нет.

Недостатком встроенных шрифтов является то, что они увеличивают размер приложения.

DigitCase Класс DigitCase является перечислением констант, с помощью которых задается свойство digitCase класса ElementFormat.Object Класс DigitCase является перечислением констант, с помощью которых задается свойство digitCase класса ElementFormat. flash.text.engine.ElementFormat.digitCaseDEFAULT Служит для задания регистра цифр по умолчанию.defaultString Служит для задания регистра цифр по умолчанию. Результаты зависят от шрифта; символы используют настройки, определенные дизайнером шрифтов без применения каких-либо функций. LINING Служит для задания маюскульного регистра цифр.liningString Служит для задания маюскульного регистра цифр. OLD_STYLE Служит для задания минускульного регистра цифр.oldStyleString Служит для задания минускульного регистра цифр. TypographicCase Класс TypographicCase является перечислением констант для определения свойства typographicCase класса ElementFormat.Object Класс TypographicCase является перечислением констант для определения свойства typographicCase класса ElementFormat. ElementFormat.typographicCaseCAPS_AND_SMALL_CAPS Указывает, что на выходе все символы нижнего регистра используют капительные глифы.capsAndSmallCapsString Указывает, что на выходе все символы нижнего регистра используют капительные глифы. CAPS Указывает, что на выходе для символов верхнего регистра корректируются интервалы.capsString Указывает, что на выходе для символов верхнего регистра корректируются интервалы. DEFAULT Задает регистр текста по умолчанию.defaultString Задает регистр текста по умолчанию. Результаты зависят от шрифта; символы используют настройки, определенные дизайнером шрифтов без применения каких-либо функций. LOWERCASE Указывает, что на выходе все символы используют глифы нижнего регистра.lowercaseString Указывает, что на выходе все символы используют глифы нижнего регистра. SMALL_CAPS Указывает, что на выходе символы верхнего регистра используют капительные глифы.smallCapsString Указывает, что на выходе символы верхнего регистра используют капительные глифы. TITLE Указывает, что на выходе символы верхнего регистра используют заголовочные глифы.titleString Указывает, что на выходе символы верхнего регистра используют заголовочные глифы. UPPERCASE Указывает, что на выходе все символы используют глифы верхнего регистра.uppercaseString Указывает, что на выходе все символы используют глифы верхнего регистра. TextElement Класс TextElement представляет строку отформатированного текста.flash.text.engine:ContentElement Класс TextElement представляет строку отформатированного текста. Назначьте объект TextElement свойству content объекта TextBlock, чтобы создать блок текста. Назначьте его объекту GroupElement, чтобы объединить с другими текстовыми и графическими элементами в единое целое. Используйте класс ElementFormat для форматирования текста. ContentElementElementFormatTextBlockTextElement Создает новый экземпляр TextElement.textStringnullТекст элемента. По умолчанию используется null. elementFormatflash.text.engine:ElementFormatnullФормат элемента для текста в элементе. По умолчанию используется null. eventMirrorflash.events:EventDispatchernullОбъект EventDispatcher, получающий копии каждого события, вызванного для текстовых строк, созданных на основе данного элемента содержимого. По умолчанию используется null. textRotationStringrotate0При вращении элемент был использован в качестве единицы измерения. Используйте константы TextRotation для этого свойства. Значение по умолчанию равно TextRotation.ROTATE_0. Создает новый экземпляр TextElement. В следующем примере из строки текста создается объект TextElement, он форматируется до размера 12 и красного цвета (0xCC0000), затем назначается свойству content блока TextBlock. Вызывается функция createLines() для разбиения блока текста на строки по 150 пикселей. 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; public class TextElementExample extends Sprite { public function TextElementExample():void { var str:String = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, " + "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut " + "enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut " + "aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit " + "in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur " + "sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt " + "mollit anim id est laborum."; var format:ElementFormat = new ElementFormat(null, 12, 0xCC0000); var textElement:TextElement = new TextElement(str, format); var textBlock:TextBlock = new TextBlock(); textBlock.content = textElement; createLines(textBlock); } private function createLines(textBlock:TextBlock):void { var yPos = 20; var textLine:TextLine = textBlock.createTextLine (null, 150); while (textLine) { addChild(textLine); textLine.x = 15; yPos += textLine.textHeight+2; textLine.y = yPos; textLine = textBlock.createTextLine(textLine, 150); } } } } replaceText Заменяет диапазон символов, заданный параметрами beginIndex и endIndex, содержанием параметра newText.Заданный параметр beginIndex или endIndex находится за пределами диапазона. RangeErrorRangeErrorbeginIndexintОтсчитываемое от нуля значение индекса для начального положения диапазона замены. endIndexintОтсчитываемое от нуля значение индекса, следующее за конечным положением диапазона замены. newTextStringТекст для замены заданного диапазона символов. Заменяет диапазон символов, заданный параметрами beginIndex и endIndex, содержанием параметра newText. Значения beginIndex и endIndex относятся к текущему содержимому text.

Для удаления текста передайте null для newText.

Для вставки текста передайте то же значение для beginIndex и endIndex. Новый текст вставляется перед заданным индексом.

Для добавления текста передайте text.length для beginIndex и endIndex.

Для задания всего текста передайте 0 для beginIndex и text.length для endIndex.

В этом примере показано, как многократно вызывать replaceText() для следующих целей:
  • вставить строку в начале текста
  • добавить строку в конец текста
  • вставить строку в середине текста
  • заменить текст новым
package { import flash.display.Sprite; import flash.text.engine.FontDescription; import flash.text.engine.ElementFormat; import flash.text.engine.TextElement; import flash.text.engine.TextBlock; import flash.text.engine.TextLine; public class TextElement_replaceTextExample extends Sprite { public function TextElement_replaceTextExample():void { var str:String = "0123456"; var fontDescription:FontDescription = new FontDescription("Arial"); var format:ElementFormat = new ElementFormat(fontDescription); format.fontSize = 14; var textElement:TextElement = new TextElement(str, format); var textBlock:TextBlock = new TextBlock(); textBlock.content = textElement; textElement.replaceText(0, 0, "abc"); createLine(textBlock, 20); //"abc0123456" textElement.replaceText(10, 10, "abc"); createLine(textBlock, 40); // "abc0123456abc" textElement.replaceText(5, 8, "abc"); createLine(textBlock, 60); // "abc01abc56abc" textElement.replaceText(0, 13, "abc"); createLine(textBlock, 80); // "abc" textElement.replaceText(0, 3, "That's all she wrote!"); createLine(textBlock, 100); // "That's all she wrote" */ } private function createLine(textBlock:TextBlock, y:Number):void { var textLine:TextLine = textBlock.createTextLine(null, 150); textLine.x = 10; textLine.y = y; addChild(textLine); } } }
text Получает текст, являющийся содержимым элемента.String Получает текст, являющийся содержимым элемента.

По умолчанию используется null.

TextLineValidity Класс TextLineValidity является перечислением констант для определения свойства validity класса TextLine.Object Класс TextLineValidity является перечислением констант для определения свойства validity класса TextLine. TextBlock.firstInvalidLineTextLine.validityINVALID Указывает, что текстовая строка недействительна.invalidString Указывает, что текстовая строка недействительна. POSSIBLY_INVALID Указывает, что текстовая строка, возможно, недействительна.possiblyInvalidString Указывает, что текстовая строка, возможно, недействительна. Среда выполнения Flash использует эту валидность при повторной разбивке строк ранее разбитого текстового блока, содержимое которого не изменялось. Это значение задать нельзя. STATIC Указывает на то, что строка является статичной и что связь между строкой и текстовым блоком разорвана.staticString Указывает на то, что строка является статичной и что связь между строкой и текстовым блоком разорвана. VALID Указывает, что текстовая строка действительна.validString Указывает, что текстовая строка действительна. FontPosture Класс FontPosture перечисляет константы, используемые свойством FontDescription.fontPosture для установки курсива или обычного текста.Object Класс FontPosture перечисляет константы, используемые свойством FontDescription.fontPosture для установки курсива или обычного текста. FontDescription.fontPostureITALIC Используется для указания курсивного начертания шрифта.italicString Используется для указания курсивного начертания шрифта. NORMAL Используется для указания обычного начертания шрифта.normalString Используется для указания обычного начертания шрифта. JustificationStyle Класс JustificationStyle является перечислением констант для определения свойства justificationStyle класса EastAsianJustifier.Object Класс JustificationStyle является перечислением констант для определения свойства justificationStyle класса EastAsianJustifier. Эти константы задают параметры для обработки символов кинсоку, японских символов, которые не должны появляться в начале и конце строк. EastAsianJustifier.justificationStylePRIORITIZE_LEAST_ADJUSTMENT Выполняет выравнивание по ширине на основе сжатия или расширения строки в зависимости от того, что обеспечить результат, наиболее приближенный к желаемой ширине.prioritizeLeastAdjustmentString Выполняет выравнивание по ширине на основе сжатия или расширения строки в зависимости от того, что обеспечить результат, наиболее приближенный к желаемой ширине. PUSH_IN_KINSOKU Выполняет выравнивание по ширине на основе сжатия кинсоку в конце строки или расширяя его, если кинсоку нет или недостаточно места.pushInKinsokuString Выполняет выравнивание по ширине на основе сжатия кинсоку в конце строки или расширяя его, если кинсоку нет или недостаточно места. PUSH_OUT_ONLY Выполняет выравнивание по ширине на основе расширения строки.pushOutOnlyString Выполняет выравнивание по ширине на основе расширения строки. EastAsianJustifier Класс EastAsianJustifier имеет свойства для управления параметрами выравнивания по ширине текстовых строк, содержание которых представлено в основном восточно-азиатским текстом.flash.text.engine:TextJustifier Класс EastAsianJustifier имеет свойства для управления параметрами выравнивания по ширине текстовых строк, содержание которых представлено в основном восточно-азиатским текстом.

Используйте конструктор new EastAsianJustifier(), чтобы создать объект EastAsianJustifier, прежде чем определять его свойства. Если определить свойства объекта EastAsianJustifier после его применения к TextBlock, объект TextBlock не становится недействительным.

В этом примере блок японского текста отображается по вертикали с использованием свойств EastAsianJustifier для полной выключки текста. package { import flash.text.engine.TextBlock; import flash.text.engine.TextLine; import flash.text.engine.TextElement; import flash.text.engine.TextBaseline; import flash.text.engine.EastAsianJustifier; import flash.text.engine.LineJustification; import flash.text.engine.TextRotation; import flash.text.engine.FontDescription; import flash.text.engine.ElementFormat; import flash.display.Stage; import flash.display.Sprite; import flash.system.Capabilities; public class EastAsianJustifierExample extends Sprite { public function EastAsianJustifierExample():void { var Japanese_txt: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 textBlock:TextBlock = new TextBlock(); var font:FontDescription = new FontDescription(); var format:ElementFormat = new ElementFormat(); format.fontSize = 12; format.locale = "ja"; format.color = 0xCC0000; textBlock.baselineZero = TextBaseline.IDEOGRAPHIC_CENTER; textBlock.textJustifier = new EastAsianJustifier("ja", LineJustification.ALL_INCLUDING_LAST); textBlock.lineRotation = TextRotation.ROTATE_90; var linePosition:Number = this.stage.stageWidth - 75; if (Capabilities.os.search("Mac OS") > -1) // set fontName: Kozuka Mincho Pro R font.fontName = String.fromCharCode(0x5C0F, 0x585A, 0x660E, 0x671D) + " Pro R"; else font.fontName = "Kozuka Mincho Pro R"; textBlock.content = new TextElement(Japanese_txt, format); var previousLine:TextLine = null; while (true) { var textLine:TextLine = textBlock.createTextLine(previousLine, 320); if (textLine == null) break; textLine.y = 20; textLine.x = linePosition; linePosition -= 25; addChild(textLine); previousLine = textLine; } } } }
JustificationStyleLineJustificationTextBlock.textJustifierEastAsianJustifier Создает объект EastAsianJustifier.Локаль locale имеет значение null или значение, являющееся слишком коротким, чтобы быть действительным. ArgumentErrorArgumentErrorЗаданная локаль lineJustification не является членом LineJustification. ArgumentErrorArgumentErrorЗначение justificationStyle не является членом класса JustificationStyle. ArgumentErrorArgumentErrorlocaleStringjaЛокаль, определяющая правила выравнивания. Значением по умолчанию является ja. lineJustificationStringallButLastТип выравнивания строк в абзаце. Используйте константы LineJustification для этого свойства. Значением по умолчанию являетеся LineJustification.ALL_BUT_LAST. justificationStyleStringpushInKinsokuСтиль выравнивания текста в текстовом блоке с помощью средства выравнивания для восточно-азиатских языков. Используйте константы JustificationStyle для этого свойства. Значение по умолчанию JustificationStyle.PUSH_IN_KINSOKU. Создает объект EastAsianJustifier. JustificationStyleLineJustificationclone Создает клонированную копию объекта EastAsianJustifier.Копия объекта EastAsianJustifier. flash.text.engine:TextJustifier Создает клонированную копию объекта EastAsianJustifier. justificationStyle Задает стиль выравнивания текста в блоке.String Задает стиль выравнивания текста в блоке.

Значение по умолчанию JustificationStyle.PUSH_IN_KINSOKU.

Используйте одну из констант класса JustificationStyle в качестве значения для этого свойства. В следующей таблице перечислены возможные значения.

Строковое значениеОписаниеJustificationStyle.PUSH_IN_KINSOKUЗадает выравнивание в пределах заданной области.JustificationStyle.PUSH_OUT_ONLYЗадает выравнивание с выступом за пределы заданной области.JustificationStyle.PRIORITIZE_LEAST_ADJUSTMENTЗадает выравнивание с использованием минимальной корректировки.
JustificationStyle
RenderingMode Класс RenderingMode передает значения для режима визуализации в классе FontDescription.Object Класс RenderingMode передает значения для режима визуализации в классе FontDescription. FontDescriptionCFF Задает режим визуализации CFF (компактного формата шрифтов).cffString Задает режим визуализации CFF (компактного формата шрифтов). Визуализация CFF улучшает удобочитаемость текста на дисплее. Этот параметр рекомендуется для приложений с большим объемом мелкого текста. Эта константа используется для свойства renderingMode в классе FontDescription. Используйте синтаксис RenderingMode.CFF. flash.text.engine.FontDescription.renderingModeNORMAL Задает режим визуализации, используемый в Flash Player 7 и более ранних версиях.normalString Задает режим визуализации, используемый в Flash Player 7 и более ранних версиях. Этот параметр рекомендуется для анимированного текста. Эта константа используется для свойства renderingMode в классе FontDescription. Используйте синтаксис RenderingMode.NORMAL. flash.text.engine.FontDescription.renderingModeFontMetrics Класс FontMetrics содержит сведения о размерах и сдвигах шрифта.Object Класс FontMetrics содержит сведения о размерах и сдвигах шрифта. Метод ElementFormat.getFontMetrics() возвращает объекты этого класса. ElementFormat.getFontMetrics()FontMetrics Создает объект FontMetrics.emBoxflash.geom:RectangleemBox шрифта в пикселах. strikethroughOffsetNumberСдвиг зачеркивания в пикселах. strikethroughThicknessNumberТолщина зачеркивания в пикселах. underlineOffsetNumberСдвиг подчеркивания в пикселах. underlineThicknessNumberТолщина подчеркивания в пикселах. subscriptOffsetNumberСдвиг подстрочного индекса в пикселах. subscriptScaleNumberМасштабирование для применения к точке нижнего индекса. superscriptOffsetNumberСдвиг надстрочного индекса в пикселях. superscriptScaleNumberМасштабирование для применения к точке верхнего индекса. Создает объект FontMetrics. Объект FontMetrics содержит информацию о метрике шрифта элемента. Метод flash.text.engine.ElementFormat.getFontMetrics() возвращает объекты этого класса. ElementFormat.getFontMetrics()emBox Значение emBox представляет пространство проектных параметров шрифта и служит для размещения китайских, корейских и японских глифов относительно латинской базовой линии.flash.geom:Rectangle Значение emBox представляет пространство проектных параметров шрифта и служит для размещения китайских, корейских и японских глифов относительно латинской базовой линии. Как правило, это квадрат, сторона которого равна размеру кегля шрифта. Исходная точка (с координатами 0,0) для emBox задается у левого края латинской базовой линии прямоугольника. Например для шрифта 10 emBox может быть прямоугольником [L,T,R,B] с размерами [0, -8.8, 10, 1.2]. strikethroughOffset Значение strikethroughOffset представляет предлагаемый вертикальный сдвиг латинской базовой линии для зачеркивания.Number Значение strikethroughOffset представляет предлагаемый вертикальный сдвиг латинской базовой линии для зачеркивания.

Обратите внимание, что в зависимости от поворота строки, это значение либо добавляется, либо вычитается из позиции строки, чтобы вычислить позицию зачеркивания. В строке с TextRotation.ROTATE_0, strikethrough.y = line.y + strikethroughOffset. В строке с TextRotation.ROTATE_90, strikethrough.x = line.x - strikethroughOffset.

При применении оформления, например, зачеркивания для TextLine, рекомендуется задавать eventMirror для объекта ContentElement, к которому будет применяться оформление. В ответ на событие Event.ADDED, свойство bounds объекта TextLineMirrorRegion может использоваться вместе с strikethroughOffset для определения позиции зачеркивания.

ContentElement.eventMirrorTextLineMirrorRegion
strikethroughThickness Значение strikethroughThickness представляет предлагаемую толщину зачеркивания.Number Значение strikethroughThickness представляет предлагаемую толщину зачеркивания. subscriptOffset Значение subscriptOffset представляет предлагаемый вертикальный сдвиг латинской базовой линии для подстрочного индекса.Number Значение subscriptOffset представляет предлагаемый вертикальный сдвиг латинской базовой линии для подстрочного индекса.

Значение subscriptOffset используется вместе с ElementFormat.baselineShift для определения позиции подстрочного индекса.

ElementFormat.baselineShift
subscriptScale Значение subscriptScale представляет рекомендуемый коэффициент масштабирования, которые должен применяться к размеру кегля подстрочного индекса.Number Значение subscriptScale представляет рекомендуемый коэффициент масштабирования, которые должен применяться к размеру кегля подстрочного индекса. Коэффициент 1,0 обозначает отсутствие масштабирования. superscriptOffset Значение superscriptOffset представляет предлагаемый вертикальный сдвиг латинской базовой линии для надстрочного индекса.Number Значение superscriptOffset представляет предлагаемый вертикальный сдвиг латинской базовой линии для надстрочного индекса.

Значение superscriptOffset используется вместе с ElementFormat.baselineShift для определения позиции надстрочного индекса.

ElementFormat.baselineShift
superscriptScale Значение superscriptScale представляет рекомендуемый коэффициент масштабирования, которые должен применяться к размеру кегля надстрочного индекса.Number Значение superscriptScale представляет рекомендуемый коэффициент масштабирования, которые должен применяться к размеру кегля надстрочного индекса. Коэффициент 1,0 обозначает отсутствие масштабирования. underlineOffset Значение underlineOffset представляет предлагаемый вертикальный сдвиг латинской базовой линии для подчеркивания.Number Значение underlineOffset представляет предлагаемый вертикальный сдвиг латинской базовой линии для подчеркивания.

Обратите внимание, что в зависимости от поворота строки, это значение либо добавляется, либо вычитается из позиции строки, чтобы вычислить позицию подчеркивания. В строке с TextRotation.ROTATE_0, underline.y = line.y + underlineOffset. В строке с TextRotation.ROTATE_90, underline.x = line.x - underlineOffset.

При применении оформления, например, подчеркивания для TextLine, рекомендуется задавать eventMirror для объекта ContentElement, к которому будет применяться оформление. В ответ на событие Event.ADDED, свойство bounds объекта TextLineMirrorRegion может использоваться вместе с underlineOffset для определения позиции зачеркивания.

ContentElement.eventMirrorСобытиеTextLineMirrorRegionTextRotation
underlineThickness Значение underlineThickness представляет предлагаемую толщину подчеркивания.Number Значение underlineThickness представляет предлагаемую толщину подчеркивания.
ElementFormat Класс ElementFormat представляет информацию о форматировании, применимую к ContentElement.Object Класс ElementFormat представляет информацию о форматировании, применимую к ContentElement. Используйте класс ElementFormat для создания специального форматирования текста для различных подклассов ContentElement. Свойства класса ElementFormat применяются к шрифтам устройства и встроенным шрифтам.

Объект ElementFormat, примененный к ContentElement в элементе TextBlock, не аннулирует действие TextBlock. После применения объекта ElementFormat к ContentElement для его свойства locked задается значение true. Изменение свойств заблокированного объекта ElementFormat невозможно. Вместо этого необходимо использовать метод clone() для создания разблокированной копии объекта, который можно изменить и присвоить объекту ContentElement.

В этом примере показано, как создавать два объекта ElementFormat и задавать для них некоторые свойства. Назначается новый ElementFormats объекту TextElement, который назначался в качестве содержимого TextBlock. Изменение ElementFormat объекта TextElement не влияет на текстовые строки, созданные родительским блоком.

package { import flash.display.Sprite; import flash.text.engine.*; public class ElementFormatExample extends Sprite { public function ElementFormatExample():void { var fd:FontDescription = new FontDescription(); fd.fontName = "Garamond"; fd.fontWeight = flash.text.engine.FontWeight.BOLD; var ef1:ElementFormat = new ElementFormat(fd); ef1.fontSize = 30; ef1.color = 0xFF0000; ef1.alpha = 100; ef1.kerning = flash.text.engine.Kerning.ON; ef1.trackingRight = 2; ef1.typographicCase = flash.text.engine.TypographicCase.UPPERCASE; ef1.alignmentBaseline = flash.text.engine.TextBaseline.DESCENT; ef1.ligatureLevel = flash.text.engine.LigatureLevel.EXOTIC; var ef2:ElementFormat = new ElementFormat(fd); ef2.fontSize = 30; ef2.color = 0xFF0000; ef2.alpha = 0.3; ef2.kerning = flash.text.engine.Kerning.OFF; ef2.typographicCase = flash.text.engine.TypographicCase.LOWERCASE; ef2.digitCase = flash.text.engine.DigitCase.OLD_STYLE; ef2.textRotation = flash.text.engine.TextRotation.ROTATE_180; var str:String = "This is flash text 0123456789"; var tb:TextBlock = new TextBlock(); var te1:TextElement = new TextElement(str, ef1); tb.content = te1; var line1:TextLine = tb.createTextLine(null, 600); addChild(line1); line1.x = 15; line1.y = 30; tb.content.elementFormat = ef2; var line2:TextLine = tb.createTextLine(null, 600); addChild(line2); line2.x = 15; line2.y = 60; } } }
ContentElement.elementFormatElementFormat Создает объект ElementFormat.Заданный fontSize меньше 0. ArgumentErrorArgumentErrorЗаданное значение textRotation не является членом класса TextRotation. ArgumentErrorArgumentErrorЗаданное значение dominantBaseline не является членом класса TextBaseline. ArgumentErrorArgumentErrorЗаданное значение alignmentBaseline не является членом класса TextBaseline. ArgumentErrorArgumentErrorЗаданное значение kerning не является членом класса Kerning. ArgumentErrorArgumentErrorЗаданное значение breakOpportunity не является членом класса BreakOpportunity. ArgumentErrorArgumentErrorЗаданное значение digitCase не является членом класса DigitCase. ArgumentErrorArgumentErrorЗаданное значение digitWidth не является членом класса DigitWidth. ArgumentErrorArgumentErrorЗаданное значение ligatureLevel не является членом класса LigatureLevel. ArgumentErrorArgumentErrorЗаданное значение typographicCase не является членом класса TypographicCase. ArgumentErrorArgumentErrorfontDescriptionflash.text.engine:FontDescriptionnullОбъект FontDescription задающий шрифт формата элемента. По умолчанию используется null. Если не выбрано описание шрифта, используется описание по умолчанию. fontSizeNumber12.0Размер текста в пикселах. coloruint0x000000Цвет текста. Шестнадцатеричное число, содержащее три 8-разрядных компонента RGB; например, 0xFF0000 — это красный, 0x00FF00 — это зеленый. alphaNumber1.0Свойство alpha применяется ко всем атомам строки на основе формата элемента. textRotationStringautoвращение, применяемое к отдельным образам символа. Используйте константы TextRotation для этого свойства. dominantBaselineStringromanБазовая линия, по которой равняются образы символов в тексте. Используйте константы TextBaseline для этого свойства. alignmentBaselineStringuseDominantBaselineБазовая линия содержащий строки, по которой равняется доминирующая базовая линия. Используйте константы TextBaseline для этого свойства. baselineShiftNumber0.0Сдвиг базовой линии для текста в пикселах. kerningStringonКернинг текста. Используйте константы, определенные в классе Kerning. trackingRightNumber0.0Трекинг или ручной кернинг, применяемый справа от каждого глифа (в пикселях). trackingLeftNumber0.0Трекинг или ручной кернинг, применяемый слева от каждого глифа (в пикселях). localeStringenЛокаль текста. breakOpportunityStringautoВозможный разрыв строки в тексте. Используйте константы BreakOpportunity для этого свойства. digitCaseStringdefaultРегистр цифр в тексте. Используйте константы DigitCase для этого свойства. digitWidthStringdefaultШирина цифр в тексте. Используйте константы DigitWidth для этого свойства. ligatureLevelStringcommonЛигатура в тексте. Используйте константы LigatureLevel для этого свойства. typographicCaseStringdefaultРегистр текста. Используйте константы TypographicCase для этого свойства. Создает объект ElementFormat. clone Создание разблокированной клонированной копии объекта ElementFormat.Разблокированная копия объекта ElementFormat. flash.text.engine:ElementFormat Создание разблокированной клонированной копии объекта ElementFormat.

В этом примере создается объект ElementFormat и задается свойство FontSize. Создается новый объект TextElement с использованием ElementFormat (и блокируется таким образом), затем этот объект TextElement используется в качестве содержимого для объекта TextBlock. Из объекта TextBlock создается текстовая строка.

Для изменения объекта ElementFormat сначала проверьте его свойство locked. Если оно имеет значение true, используйте метод clone() для создания разблокированной копии объекта ElementFormat, измените его свойства, затем повторно свяжите новый объект ElementFormat с объектом TextBlock. При повторной разбивке строк новые строки получат новые параметры шрифтов.

package { import flash.display.Sprite; import flash.text.engine.*; public class ElementFormat_cloneExample extends Sprite { private var ef1:ElementFormat; private var ef2:ElementFormat; public function ElementFormat_cloneExample():void { var fd:FontDescription = new FontDescription(); fd.fontLookup = flash.text.engine.FontLookup.DEVICE; fd.fontName = "Palatino"; var ef1:ElementFormat = new ElementFormat(fd); ef1.fontSize=20; var str:String = "This is flash text 0123456789"; var tb:TextBlock = new TextBlock(); var te1:TextElement = new TextElement(str, ef1); tb.content = te1; var line1:TextLine = tb.createTextLine(null, 600); addChild(line1); ef2 = (ef1.locked) ? ef1.clone() : ef1; ef2.fontSize = 32; tb.content.elementFormat=ef2; var line2:TextLine = tb.createTextLine(null, 600); addChild(line2); } } }
getFontMetrics Возвращает объект FontMetrics со свойствами, описывающими emBox, положение зачеркивания, толщину зачеркивания, положение подчеркивания, толщину подчеркивания и шрифта, заданного fontDescription и fontSize. Объект FontMetrics, описывающий свойства шрифта, заданного fontDescription. flash.text.engine:FontMetrics

Возвращает объект FontMetrics со свойствами, описывающими emBox, положение зачеркивания, толщину зачеркивания, положение подчеркивания, толщину подчеркивания и шрифта, заданного fontDescription и fontSize.

В этом примере показано, как создавать объект ElementFormat и назначать ему FontDescription, а также использовать метод getFontMetrics для отображения метрики выбранного шрифта размером 24 пункта. package { import flash.display.Sprite; import flash.text.engine.*; public class FontMetricsExample extends Sprite { public function FontMetricsExample():void { var fd:FontDescription = new FontDescription(); fd.fontName = "Garamond"; fd.fontWeight = flash.text.engine.FontWeight.BOLD; var ef1:ElementFormat = new ElementFormat(fd); ef1.fontSize = 24; var fm1:FontMetrics = ef1.getFontMetrics(); trace(fm1.emBox); trace(fm1.strikethroughOffset); trace(fm1.strikethroughThickness); trace(fm1.subscriptScale); trace(fm1.subscriptOffset); trace(fm1.superscriptScale); trace(fm1.superscriptOffset); trace(fm1.underlineOffset); trace(fm1.underlineThickness); } } }
FontDescriptionFontMetrics
alignmentBaseline Определяет тип базовой линии в содержащем элементе, по которой следует выравнивать доминантные базовые линии элементов с таким форматом.StringЕсли задано значение, не являющееся членом TextBaseline. ArgumentErrorArgumentErrorЕсли задается после блокирования объекта ElementFormat (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Определяет тип базовой линии в содержащем элементе, по которой следует выравнивать доминантные базовые линии элементов с таким форматом. Используйте константы TextBaseline для этого свойства.

Выравнивание базовых линий определяется самым большим вертикальным элементом в строке, если не заданы TextBlock.baselineFontDescription и TextBlock.baselineFontSize для изменения этой логики.

Значение по умолчанию — TextBaseline.USE_DOMINANT_BASELINE.

В качестве значений этого свойства используйте следующие строковые значения:

Строковое значениеОписаниеTextBaseline.ROMANdominantBaseline выравнивается по латинской базовой линии строки.TextBaseline.ASCENTdominantBaseline выравнивается по базовой линии верхнего выносного элемента строки.TextBaseline.DESCENTdominantBaseline выравнивается по базовой линии нижнего выносного элемента строки.TextBaseline.IDEOGRAPHIC_TOPdominantBaseline выравнивается по идеографической верхней базовой линии строки.TextBaseline.IDEOGRAPHIC_CENTERdominantBaseline выравнивается по идеографической центральной базовой линии строки.TextBaseline.IDEOGRAPHIC_BOTTOMdominantBaseline выравнивается по идеографической нижней базовой линии строки.TextBaseline.USE_DOMINANT_BASELINEdominantBaseline выравнивается по той же базовой линии строки.

ПодклассРезультат определения свойстваGraphicElementЗадает базовую линию выравнивания строки, по которой выравнивается dominantBaseline графического элемента.GroupElementНе оказывает влияния.TextElementЗадает базовую линию выравнивания строки, по которой выравнивается dominantBaseline текстового элемента. TextBaselineElementFormat.dominantBaselinealpha Определяет прозрачность элементов строки, затрагиваемых этим объектом.NumberЕсли задается после блокирования объекта ElementFormat (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Определяет прозрачность элементов строки, затрагиваемых этим объектом. Допустимые значения находятся в диапазоне 0 (полностью прозрачный) — 1 (полностью непрозрачный). Экранные объекты, для которых значение alpha равно 0, являются активными, несмотря на невидимость.

По умолчанию используется значение 1.

ПодклассРезультат определения свойстваGraphicElementПрименяет заданное значение альфа-канала к графическому элементу. Мультипликативно объединяется с любым значением альфа-канала, заданным в самом графическом объекте DisplayObject или в TextLine.GroupElementНе оказывает влияния.TextElementПрименяет заданное значение альфа-канала к текстовому элементу. Мультипликативно объединяется с любым значением альфа-канала, заданным в TextLine.
DisplayObject.alpha
baselineShift Указывает смещение базовой линии для элемента в пикселях.NumberЕсли задается после блокирования объекта ElementFormat (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Указывает смещение базовой линии для элемента в пикселях.

Элемент смещается с dominantBaseline на это расстояние. Сдвиг добавляется к положение по оси у членов элемента, поэтому в не вращающемся тексте положительное смещение базовой линии сдвигает элемент вниз, а отрицательное — вверх.

Значение по умолчанию 0,0, что указывает на отсутствие смещения.

ПодклассРезультат определения свойстваGraphicElementСмещает графический элемент с базовой линии.GroupElementНе оказывает влияния.TextElementСмещает текстовый элемент с базовой линии.
breakOpportunity Возможный разрыв строки в тексте.StringЕсли заданное значение не является членом класса BreakOpportunity. ArgumentErrorArgumentErrorЕсли задается после блокирования объекта ElementFormat (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Возможный разрыв строки в тексте. Это свойство определяет, какие символы могут использоваться для разрыва, когда обтекающий текст разбивается на несколько строк. Используйте константы BreakOpportunity для этого свойства.

По умолчанию используется значение BreakOpportunity.AUTO.

В качестве значений этого свойства используйте следующие строковые значения:

Строковое значениеОписаниеBreakOpportunity.AUTOВозможные разрывы строк определяются в соответствии со стандартными свойствами символов Юникод, например разрыв между словами и после дефиса.BreakOpportunity.ANYЛюбой символ в объекте ContentElement рассматривается как возможность разрыва строки. Это значение обычно используется, когда латинский текст встраивается с восточно-азиатский текст и желательны разрывы строк в середине слов.BreakOpportunity.NONEНи один из символов диапазона не рассматривается как возможность разрыва строки.BreakOpportunity.ALLВсе символы в диапазоне рассматриваются как возможности для разрыва строки, то есть разрыв строки будет осуществляться после каждого символа. Полезно для создания таких эффектов, как текст по контуру.

ПодклассРезультат определения свойстваGraphicElementНе оказывает влияния.GroupElementОпределяет возможность разрыва строки между смежными текстовыми элементами в группе. Если elementFormat группы имеет значение null, используется формат первого из смежных элементов.TextElementОпределяет возможность разрыва строки между символами в текстовом элементе. BreakOpportunitycolor Указывает цвет текста.uintЕсли задается после блокирования объекта ElementFormat (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Указывает цвет текста. Целое число, содержащее три 8-разрядных компонента RGB; например, 0xFF0000 — это красный, 0x00FF00 — это зеленый.

По умолчанию используется значение 0x000000, то есть черный.

ПодклассРезультат определения свойстваGraphicElementНе оказывает влияния.GroupElementНе оказывает влияния.TextElementЗадает цвет текста.
digitCase Регистр цифр в тексте.StringЕсли задано значение, не являющееся элементом класса DigitCase. ArgumentErrorArgumentErrorЕсли задается после блокирования объекта ElementFormat (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Регистр цифр в тексте. Регистр цифр влияет на стиль и расположение групп числовых символов. Используйте константы DigitCase для этого свойства.

По умолчанию используется значение DigitCase.DEFAULT.

В качестве значений этого свойства используйте следующие строковые значения:

Строковое значениеОписаниеDigitCase.DEFAULTПрименяет к тексту регистр цифр по умолчанию.DigitCase.LININGПрименяет к тексту маюскульный регистр цифр.DigitCase.OLD_STYLEПрименяет к тексту минускульный регистр цифр.

ПодклассРезультат определения свойстваGraphicElementНе оказывает влияния.GroupElementНе оказывает влияния.TextElementОпределяет регистр цифр, используемый для текста в элементе. DigitCasedigitWidth Ширина цифр в тексте.StringЕсли задано значение, не являющееся элементом класса DigitWidth. ArgumentErrorArgumentErrorЕсли задается после блокирования объекта ElementFormat (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Ширина цифр в тексте. Используйте константы DigitWidth для этого свойства.

По умолчанию используется значение DigitWidth.DEFAULT.

В качестве значений этого свойства используйте следующие строковые значения:

Строковое значениеОписаниеDigitWidth.DEFAULTПрименяет к тексту ширину цифр по умолчанию.DigitWidth.PROPORTIONALПрименяет к тексту пропорциональную ширину цифр.DigitWidth.TABULARПрименяет к тексту табличную ширину цифр.

ПодклассРезультат определения свойстваGraphicElementНе оказывает влияния.GroupElementНе оказывает влияния.TextElementОпределяет ширину цифр, используемую для текста в элементе. DigitWidthdominantBaseline Определяет тип базовой линии, который должен использоваться в качестве доминантной базовой линии.StringЕсли задано значение, не являющееся членом TextBaseline. ArgumentErrorArgumentErrorЕсли задается после блокирования объекта ElementFormat (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Определяет тип базовой линии, который должен использоваться в качестве доминантной базовой линии. Доминантная базовая линия выравнивается по базовой линии выравнивания, чтобы определить позицию по вертикали для элемента в строке. Используйте константы TextBaseline для этого свойства.

Содержимое элемента определяет базовые линии. В случае с TextElement базовые линии определяются шрифтом и размером кегля. В случае с GraphicElement базовые линии определяются высотой элемента.

Значение по умолчанию — TextBaseline.ROMAN.

В качестве значений этого свойства используйте следующие строковые значения:

Строковое значениеОписаниеTextBaseline.ROMANЛатинская базовая линия элемента выравнивается по alignmentBaseline.TextBaseline.ASCENTБазовая линия верхнего выносного элемента выравнивается по alignmentBaseline.TextBaseline.DESCENTБазовая линия нижнего выносного элемента выравнивается по alignmentBaseline.TextBaseline.IDEOGRAPHIC_TOPИдеографическая верхняя базовая линия элемента выравнивается по alignmentBaseline.TextBaseline.IDEOGRAPHIC_CENTERИдеографическая центральная базовая линия элемента выравнивается по alignmentBaseline.TextBaseline.IDEOGRAPHIC_BOTTOMИдеографическая нижняя базовая линия элемента выравнивается по alignmentBaseline.

ПодклассРезультат определения свойстваGraphicElementОпределяет, какая из базовых линий графического элемента выравнивается по alignmentBaseline.GroupElementНе оказывает влияния.TextElementОпределяет, какая из базовых линий текстового элемента выравнивается по alignmentBaseline. TextBaselineElementFormat.alignmentBaselinefontDescription Объект, свойства которого описывают шрифт.flash.text.engine:FontDescriptionЕсли задается после блокирования объекта ElementFormat (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Объект, свойства которого описывают шрифт.

Значением по умолчанию является объект FontDescription, созданный по умолчанию.

Если задается свойство fontDescription, предоставленный объект FontDescription заблокирован: для его свойства locked задано значение true. Изменение заблокированного объекта FontDescription невозможно.

ПодклассРезультат определения свойстваGraphicElementНе оказывает влияния.GroupElementНе оказывает влияния.TextElementОпределяет шрифт, используемый для текста в элементе.
FontDescription
fontSize Размер текста в пикселах.NumberЕсли задано значение меньше нуля. ArgumentErrorArgumentErrorЕсли задается после блокирования объекта ElementFormat (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Размер текста в пикселах.

По умолчанию используется значение 12.0.

ПодклассРезультат определения свойстваGraphicElementНе оказывает влияния.GroupElementНе оказывает влияния.TextElementОпределяет размер текста элемента в пикселах.
kerning Кернинг регулирует количество пикселей между определенными парами символов с целью улучшения удобочитаемости текста. StringЕсли задается после блокирования объекта ElementFormat (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Кернинг регулирует количество пикселей между определенными парами символов с целью улучшения удобочитаемости текста. Кернинг поддерживается для всех шрифтов, имеющих таблицы кернинга.

По умолчанию используется значение Kerning.ON.

Чтобы установить значения для этого свойства, используйте следующие константы класса Kerning.

Строковое значениеОписаниеKerning.ONКернинг включен.Kerning.OFFКернинг выключен.Kerning.AUTOВ азиатской типографике кернинг всегда включен за исключением тех случаев, когда его использование неприемлемо. Кернинг применяется между двумя символами, если ни один из них не принадлежит к кандзи, хирагана или катакана.

ПодклассРезультат определения свойстваGraphicElementНе оказывает влияния.GroupElementОпределяет, применяется ли кернинг между смежными текстовыми элементами в группе. Если elementFormat группы имеет значение null, используется формат первого из смежных элементов.TextElementОпределяет, применяется ли кернинг между символами в текстовом элементе. KerningligatureLevel Лигатура в тексте.StringЕсли задано значение, не являющееся элементом класса LigatureLevel. ArgumentErrorArgumentErrorЕсли задается после блокирования объекта ElementFormat (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Лигатура в тексте. Лигатура возникает, когда две или более литеры объединяются в один глиф. Лигатуры обычно заменяют последовательные символы с общими компонентами, такие как пары букв «fi», «fl» или «ae». Они используются как с латинскими, так и с нелатинскими наборами символов. Используйте константы LigatureLevel для этого свойства.

По умолчанию используется значение LigatureLevel.COMMON.

В качестве значений этого свойства используйте следующие строковые значения:

Строковое значениеОписаниеLigatureLevel.NONEЛигатуры не создаются.LigatureLevel.MINIMUMСоздаются минимальные лигатуры.LigatureLevel.COMMONСоздаются обычные лигатуры.LigatureLevel.UNCOMMONСоздаются необычные лигатуры.LigatureLevel.EXOTICСоздаются экзотические лигатуры.

ПодклассРезультат определения свойстваGraphicElementНе оказывает влияния.GroupElementОпределяет уровень лигатуры между смежными текстовыми элементами в группе. Если elementFormat группы имеет значение null, используется формат первого из смежных элементов.TextElementОпределяет уровень лигатуры между символами в текстовом элементе. LigatureLevellocale Локаль текста.StringЕсли задается после блокирования объекта ElementFormat (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Локаль текста. Управляет преобразованием регистра и формированием. Используются стандартные идентификаторы локали. Например en, en_US и en-US относятся к английскому, а ja — к японскому. Список кодов локалей см. в списке кодов iso639-2.

Значение по умолчанию равно en.

ПодклассРезультат определения свойстваGraphicElementНе оказывает влияния.GroupElementНе оказывает влияния.TextElementОпределяет преобразования и формирование для текста в элементе.
locked Обозначает, заблокирован ли объект ElementFormat.BooleanЕсли задается после блокирования объекта ElementFormat (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Обозначает, заблокирован ли объект ElementFormat. Если задано значение true, изменение объекта ElementFormat невозможно. Вызовите метод ElementFormat.clone() для получения разблокированной копии объекта ElementFormat. textRotation Задает вращение, применяемое к отдельным глифам символа.StringЕсли задано значение, не являющееся членом TextRotation. ArgumentErrorArgumentErrorЕсли задается после блокирования объекта ElementFormat (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Задает вращение, применяемое к отдельным глифам символа. Используйте для этого свойства константы, определенные в классе TextRotation.

По умолчанию используется значение TextRotation.AUTO.

Конечный поворот любого глифа является суммой ElementFormat.textRotation, ContentElement.textRotation и TextBlock.lineRotation.

Это свойство обычно используется для азиатского текста, где символы необходимо поворачивать для правильного отображения при вертикальной раскладке. Для этого используйте TextRotation.AUTO в сочетании с TextBlock.lineRotation = TextRotation.ROTATE_90.

Определение этого свойства для шрифтов, не содержащих сведений о вертикальной раскладке, может дать нежелательные результаты. Шрифты, содержащие таблицу vmtx или VORG, такие как японский шрифт MS Mincho, работают правильно, так как эти таблицы предоставляют данные, необходимые процессору раскладки. Такие шрифты, как Verdana, не содержащие необходимой информации, работают неправильно.

В качестве значений этого свойства используйте следующие строковые значения:

Строковое значениеОписаниеTextRotation.ROTATE_0Глифы не поворачиваются.TextRotation.ROTATE_90Глифы поворачиваются на 90 градусов по часовой стрелке.TextRotation.ROTATE_180Глифы поворачиваются на 180 градусов.TextRotation.ROTATE_270Глифы поворачиваются на 270 градусов по часовой стрелке.TextRotation.AUTOЗадает поворот на 90 градусов против часовой стрелки только для полноширинных и широких глифов, в соответствии со свойствами Юникод для глифа. Обычно это значение используется с восточно-азиатскими текстами, чтобы поворачивать только глифы, требующие поворота. Этот поворот применяется только к вертикальному тексту, чтобы возвращать полноширинным и широким символам вертикальную ориентацию, не затрагивая остальных символов.

ПодклассРезультат определения свойстваGraphicElementНе оказывает влияния.GroupElementНе оказывает влияния.TextElementОпределяет поворот глифов в текстовом элементе. TextRotationContentElement.textRotationTextBlock.lineRotationtrackingLeft Трекинг или ручной кернинг, применяемый слева от каждого глифа (в пикселях).NumberЕсли задается после блокирования объекта ElementFormat (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Трекинг или ручной кернинг, применяемый слева от каждого глифа (в пикселях). Если kerning включен, значение trackingLeft добавляется к значениям в таблице кернинга для шрифта. Если kerning выключен, значение trackingLeft используется в качестве значения ручного кернинга. Поддерживает как положительные, так и отрицательные значения.

Обычно желаемое значение трекинга делится между trackingRight и trackingLeft. В противном случае в тексте со смешанной направленностью у одной двунаправленной границы будет двойной трекинг, а у другой — нулевой.

По умолчанию используется значение 0.0.

ПодклассРезультат определения свойстваGraphicElementОпределяет трекинг, применяемый к левой стороне графического элемента.GroupElementНе оказывает влияния.TextElementОпределяет трекинг, применяемый к левой стороне символов в текстовом элементе.

Пример:

//positive tracking added to kerning var ef1:ElementFormat = new ElementFormat(); ef1.kerning = flash.text.engine.Kerning.ON; ef1.trackingLeft = 0.5; //negative manual kerning var ef2:ElementFormat = new ElementFormat(); ef2.kerning = flash.text.engine.Kerning.OFF; ef2.trackingLeft = -1.0;
trackingRight Трекинг или ручной кернинг, применяемый справа от каждого глифа (в пикселях).NumberЕсли задается после блокирования объекта ElementFormat (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Трекинг или ручной кернинг, применяемый справа от каждого глифа (в пикселях). Если kerning включен, значение trackingRight добавляется к значениям в таблице кернинга для шрифта. Если kerning выключен, значение trackingRight используется в качестве значения ручного кернинга. Поддерживает как положительные, так и отрицательные значения.

Обычно желаемое значение трекинга делится между trackingRight и trackingLeft. В противном случае в тексте со смешанной направленностью у одной двунаправленной границы будет двойной трекинг, а у другой — нулевой.

По умолчанию используется значение 0.0.

ПодклассРезультат определения свойстваGraphicElementОпределяет трекинг, применяемый к правой стороне графического элемента.GroupElementНе оказывает влияния.TextElementОпределяет трекинг, применяемый к правой стороне символов в текстовом элементе.

Пример:

//positive tracking added to kerning var ef1:ElementFormat = new ElementFormat(); ef1.kerning = flash.text.engine.Kerning.ON; ef1.trackingRight = 0.5; //negative manual kerning var ef2:ElementFormat = new ElementFormat(); ef2.kerning = flash.text.engine.Kerning.OFF; ef2.trackingRight = -1.0;
typographicCase Регистр текста.StringЕсли заданное значение не является членом класса TypographicCase. ArgumentErrorArgumentErrorЕсли задается после блокирования объекта ElementFormat (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Регистр текста. Используйте для этого свойства константы, определенные в классе TypographicCase.

По умолчанию используется значение TypographicCase.DEFAULT.

В качестве значений этого свойства используйте следующие строковые значения:

Строковое значениеОписаниеTypographicCase.DEFAULTУказывает, что для всех символов используется обычный регистр.TypographicCase.TITLEУказывает, что на выходе символы верхнего регистра используют заголовочные глифы.TypographicCase.CAPSУказывает, что на выходе для символов верхнего регистра корректируются интервалы.TypographicCase.SMALL_CAPSУказывает, что на выходе символы верхнего регистра используют капительные глифы.TypographicCase.UPPERCASEУказывает, что на выходе все символы используют глифы верхнего регистра.TypographicCase.LOWERCASEУказывает, что на выходе все символы используют глифы нижнего регистра.TypographicCase.CAPS_AND_SMALL_CAPSУказывает, что на выходе все символы нижнего регистра используют капительные глифы.

ПодклассРезультат определения свойстваGraphicElementНе оказывает влияния.GroupElementНе оказывает влияния.TextElementОпределяет регистр текста, используемый для текстового элемента. TypographicCaseTextJustifier Класс TextJustifier является абстрактным базовым классом для типов выравнивания, которые можно применять к TextBlock, в частности, классы EastAsianJustifier и SpaceJustifier.Object Класс TextJustifier является абстрактным базовым классом для типов выравнивания, которые можно применять к TextBlock, в частности, классы EastAsianJustifier и SpaceJustifier.

Нельзя создать экземпляры класса TextJustifier напрямую. При вызове new TextJustifier() выдается исключение ArgumentError. Если определить свойства объекта EastAsianJustifier или SpaceJustifier после его применения к TextBlock, объект TextBlock не становится недействительным.

EastAsianJustifierSpaceJustifierTextBlock.textJustifierTextJustifier При вызове конструктора new TextJustifier() выдается исключение ArgumentError.Локаль locale имеет значение null или значение, являющееся слишком коротким, чтобы быть действительным. ArgumentErrorArgumentErrorЗаданная локаль lineJustification не является членом LineJustification. ArgumentErrorArgumentErrorlocaleStringЛокаль, определяющая правила выравнивания по ширине. lineJustificationStringТип выравнивания строк в абзаце. Используйте константы LineJustification для этого свойства. При вызове конструктора new TextJustifier() выдается исключение ArgumentError. Однако можно вызывать конструкторы для следующих подклассов TextJustifier:
  • new SpaceJustifier()
  • new EastAsianJustifier()
EastAsianJustifierLineJustificationSpaceJustifier
clone Создает клонированную копию объекта TextJustifier.Копия объекта TextJustifier. flash.text.engine:TextJustifier Создает клонированную копию объекта TextJustifier.

Подклассы объекта TextJustifier должны перезаписывать этот метод.

getJustifierForLocale Собирает подкласс TextJustifier, соответствующий заданной локали.Локаль locale имеет значение null или значение, являющееся слишком коротким, чтобы быть действительным. ArgumentErrorArgumentErrorСсылка на объект TextJustifier. flash.text.engine:TextJustifierlocaleStringЛокаль, определяющая выравнивание. Собирает подкласс TextJustifier, соответствующий заданной локали.

Китайская, японская и корейская локали формируют объект EastAsianJustifier по умолчанию. В остальных случаях создается объект по умолчанию SpaceJustifier.

lineJustification Задает выравнивание строк по ширине для текста в блоке.String Задает выравнивание строк по ширине для текста в блоке.

Действительными значениями для этого свойства являются константы, определенные в LineJustification.

Строковое значениеОписаниеLineJustification.UNJUSTIFIEDНе выравнивает строки.LineJustification.ALL_BUT_LASTВыравнивает все строки, кроме последней.LineJustification.ALL_INCLUDING_LASTВыравнивает все строки.
LineJustification
locale Задает локаль для определения правил выравнивания по ширине для текста в блоке.StringЛокаль locale имеет значение null или значение, являющееся слишком коротким, чтобы быть действительным. ArgumentErrorArgumentError Задает локаль для определения правил выравнивания по ширине для текста в блоке. Используются стандартные идентификаторы локали. Например en, en_US и en-US относятся к английскому, а ja – к японскому.
FontDescription Класс FontDescription представляет информацию, необходимую для описания шрифта.Object Класс FontDescription представляет информацию, необходимую для описания шрифта.

Объект FontDescription применен к объекту ElementFormat, который в свою очередь применяется к ContentElement в TextBlock. После применения объекта FontDescription к объекту ElementFormat для его свойства locked задается значение true. Изменение свойств заблокированного объекта FontDescription невозможно. Вместо этого необходимо использовать метод clone() для создания разблокированной копии объекта, который можно изменить и присвоить объекту ElementFormat.

Примечание. Механизм визуализации текста FTE (Flash Text Engine) не поддерживает шрифты Type 1 или растровые шрифты, такие как Type 3, ATC, sfnt-wrapped CID или Naked CID.

В этом примере создается объект FontDescription, ему назначается шрифт устройства, задаются разные свойства шрифта и назначается новый объект объекту ElementFormat. Дополнительное форматирование шрифта выполняется с помощью ElementFormat. Создается новый объект TextElement с использованием ElementFormat, затем этотTextElement используется в качестве содержимого для объекта TextBlock. Из объекта TextBlock создается текстовая строка.

package { import flash.display.Sprite; import flash.text.engine.*; public class FontDescriptionExample extends Sprite { public function FontDescriptionExample():void { var fd:FontDescription = new FontDescription(); fd.fontLookup = flash.text.engine.FontLookup.DEVICE; fd.fontName = "Palatino"; fd.fontWeight = flash.text.engine.FontWeight.BOLD; fd.fontPosture = flash.text.engine.FontPosture.ITALIC; var ef1:ElementFormat = new ElementFormat(fd); ef1.fontSize = 30; ef1.color = 0xFF0000; var str:String = "This is flash text 0123456789"; var tb:TextBlock = new TextBlock(); var te1:TextElement = new TextElement(str, ef1); tb.content = te1; var line1:TextLine = tb.createTextLine(null, 600); addChild(line1); } } }
ElementFormat.fontDescriptionFontDescription Создает объект FontDescription.Заданное значение fontWeight не является членом класса FontWeight. ArgumentErrorArgumentErrorЗаданное значение fontPosture не является членом класса FontPosture. ArgumentErrorArgumentErrorЗаданное значение fontLookup не является членом класса FontLookup. ArgumentErrorArgumentErrorЗаданное значение renderingMode не является членом класса RenderingMode. ArgumentErrorArgumentErrorЗаданное значение cffHinting не является членом класса CFFHinting. ArgumentErrorArgumentErrorfontNameString_serifИмя используемого шрифта или разделенный запятой список имен шрифтов. fontWeightStringnormalЗадает толщину шрифта. fontPostureStringnormalЗадает начертание шрифта. fontLookupStringdeviceЗадает метод поиска шрифта. renderingModeStringcffРежим визуализации, используемый для данного текста. Используйте константы RenderingMode для этого свойства. cffHintingStringhorizontalStemТип хинтинга CFF (компактного формата шрифтов), используемый для этого текста. Используйте константы CFFHinting для этого свойства. Создает объект FontDescription. clone Создание разблокированной клонированной копии объекта FontDescription.Разблокированная копия объекта FontDescription. flash.text.engine:FontDescription Создание разблокированной клонированной копии объекта FontDescription.

В этом примере создается объект FontDescription, ему назначается шрифт устройства, задаются разные свойства шрифта и назначается новый объект (и таким образом блокируется) объекту ElementFormat. Создается новый объект TextElement с использованием ElementFormat, затем этотTextElement используется в качестве содержимого для объекта TextBlock. Из объекта TextBlock создается текстовая строка.

Для изменения объекта FontDescription сначала проверьте его свойство locked. Если значение true, используйте метод clone() для создания разблокированной копии объекта FontDescription, измените его свойства и назначьте его новому объекту ElementFormat. Затем повторно создайте связь нового объекта ElementFormat и объекта TextBlock. При повторной разбивке строк новые строки получат новые параметры шрифтов.

package { import flash.display.Sprite; import flash.text.engine.*; public class FontDescription_cloneExample extends Sprite { private var fd:FontDescription; private var fd2:FontDescription; public function FontDescription_cloneExample():void { fd = new FontDescription(); fd.fontLookup = flash.text.engine.FontLookup.DEVICE; fd.fontName = "Palatino"; fd.fontWeight = flash.text.engine.FontWeight.BOLD; fd.fontPosture = flash.text.engine.FontPosture.ITALIC; var ef1:ElementFormat = new ElementFormat(fd); var str:String = "This is flash text 0123456789"; var tb:TextBlock = new TextBlock(); var te1:TextElement = new TextElement(str, ef1); tb.content = te1; var line1:TextLine = tb.createTextLine(null, 600); addChild(line1); fd2 = (fd.locked) ? fd.clone() : fd; fd2.fontWeight = flash.text.engine.FontWeight.NORMAL; var ef2:ElementFormat = new ElementFormat(fd2); tb.content.elementFormat=ef2; var line2:TextLine = tb.createTextLine(null, 600); addChild(line2); } } }
isDeviceFontCompatible Возвращает true, если доступен применимый шрифт устройства с указанными значениями fontName, fontWeight и fontPosture.Заданное значение fontWeight не является членом класса FontWeight. ArgumentErrorArgumentErrorЗаданное значение fontPosture не является членом класса FontPosture. ArgumentErrorArgumentErrorЗначение true, если доступен совместимый шрифт устройства, в противном случае, значение — false. BooleanfontNameStringИмя проверяемого шрифта устройства. fontWeightStringЗадает толщину шрифта. Используйте FontWeight. fontPostureStringЗадает начертание шрифта. Используйте FontPosture. Возвращает true, если доступен применимый шрифт устройства с указанными значениями fontName, fontWeight и fontPosture.

Классы flash.text.engine могут использовать только шрифты устройства типа OpenType и TrueType. Если используется шрифт, созданный на базе более старой технологии шрифтов, среда выполнения выполняет визуализацию текста глиф за глифом, используя заведомо рабочие шрифты устройства.

fontLookupTextBlock.createTextLine()FontPostureFontWeight
isFontCompatible Возвращает значение true, если доступен встроенный шрифт с указанными свойствами fontName, fontWeight и fontPosture, где Font.fontType — это flash.text.FontType.EMBEDDED_CFF.Заданное значение fontWeight не является членом класса FontWeight. ArgumentErrorArgumentErrorЗаданное значение fontPosture не является членом класса FontPosture. ArgumentErrorArgumentErrorЗначение true, если доступен совместимый встроенный шрифт, в противном случае, значение — false. BooleanfontNameStringИмя проверяемого встроенного шрифта. fontWeightStringЗадает толщину шрифта. Используйте FontWeight. fontPostureStringЗадает начертание шрифта. Используйте FontPosture. Возвращает значение true, если доступен встроенный шрифт с указанными свойствами fontName, fontWeight и fontPosture, где Font.fontType — это flash.text.FontType.EMBEDDED_CFF. Начиная с Flash Player 10, в содержимом приложения могут отображаться два вида встроенных шрифтов. Обычные встроенные шрифты используются только объектами TextField. Встроенные шрифты CFF используются только классами flash.text.engine. Два типа различаются свойством fontType класса Font, возвращенным функцией enumerateFonts().

Классы flash.text.engine не могут использовать шрифты типа EMBEDDED. Если fontLookup имеет значение FontLookup.EMBEDDED_CFF в среде выполнения единственным доступным шрифтом с заданным именем и стилем является шрифт типа EMBEDDED, среда выполнения использует шрифты устройства и визуализирует текст глиф за глифом, как будто в файле нет встроенного шрифта с заданным именем и стилем.

Если имеются шрифты EMBEDDED и EMBEDDED_CFF с одинаковым именем и стилем, выбирается шрифт типа EMBEDDED_CFF, и для визуализации текста используется шрифт EMBEDDED_CFF.

fontLookupTextBlock.createTextLine()FontType.EMBEDDED_CFFFontPostureFontWeight
cffHinting Тип используемого для текста хинтинга CFF.StringЕсли задано значение, не являющееся элементом класса CFFHinting. ArgumentErrorArgumentErrorЕсли задается после блокирования объекта FontDescription (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Тип используемого для текста хинтинга CFF. Используйте константы CFFHinting для этого свойства. Это свойство применяется, только если свойство RenderingMode текста имеет значение RenderingMode.CFF.

Используемый тип хинтинга CFF (компактного формата шрифтов) определяет, должна ли среда выполнения Flash принудительно вписывать горизонтальные основы в подпискельную сетку ли время выполнения Flash сильные горизонтальные основы поместиться к подпиксельной сетке или нет.

Применяется только к встроенным шрифтам.

По умолчанию используется значение CFFHinting.HORIZONTAL_STEM.

Для свойства CFFHinting можно использовать следующие константы класса CFFHinting.

Строковое значениеОписаниеCFFHinting.NONEЗадает отсутствие хинтинга CFF. Горизонтальные основы глифов не привязываются к подпиксельной сетке. Этот параметр подходит для анимации или для шрифтов большого размера.CFFHinting.HORIZONTAL_STEMЗадает хинтинг CFF. Сильные горизонтальные основы вписываются в подпиксельную сетку на экране. Чтобы использовать этот параметр, свойство RenderingMode должно иметь значение RenderingMode.CFF.
CFFHintingFontDescription.renderingModeRenderingMode
fontLookup Задает способ поиска шрифта.StringЕсли задается после блокирования объекта FontDescription (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Задает способ поиска шрифта.

По умолчанию используется значение FontLookup.DEVICE.

В качестве значений этого свойства используйте следующие строковые значения:

Строковое значениеОписаниеFontLookup.DEVICEДля визуализации текста среда выполнения ищет шрифт устройства с заданным свойством name в локальной системе.FontLookup.EMBEDDED_CFFДля визуализации текста среда выполнения ищет встроенный шрифт CFF с заданными свойством name. Рассматриваются только шрифты типа flash.text.Font.fontType.EMBEDDED_CFF. Если заданный шрифт CFF не встроен в приложение, среда выполнения пытается использовать резервный шрифт устройства для каждого глифа. Этот метод менее эффективен, чем изначальный выбор шрифта устройства.
CFFHintingFontLookup
fontName Имя используемого шрифта или разделенный запятой список имен шрифтов.StringЕсли задается после блокирования объекта FontDescription (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Имя используемого шрифта или разделенный запятой список имен шрифтов. Среда выполнения визуализирует элемент с помощью первого доступного шрифта в списке. Например, если задать «Arial, Helvetica, _sans», то проигрыватель сначала выполняет поиск Arial, затем Helvetica, если Arial не обнаружен, а потом _sans, если не обнаружен ни тот, ни другой.

Среда выполнения Flash поддерживает три общих имени шрифтов устройства: _sans (для шрифтов sans serif), _serif (для шрифтов serif) и _typewriter (для моноширинных шрифтов). Они соотносятся с определенными шрифтами устройств в зависимости от платформы.

Значением по умолчанию является _serif.

Среда выполнения Flash обеспечивает резервные шрифты для глифов, которых нет в выбранном шрифте. Независимо от того, встроен используемый шрифт или нет, если глиф не найден в данном шрифте, среда выполнения пытается визуализировать его с использованием другого шрифта устройства, который может содержать нужный глиф.

FontLookup
fontPosture Задает начертание шрифта.StringЕсли задано значение, не являющееся элементом класса FontPosture. ArgumentErrorArgumentErrorЕсли задается после блокирования объекта FontDescription (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Задает начертание шрифта.

По умолчанию используется значение FontPosture.NORMAL.

Чтобы установить значения для этого свойства, используйте следующие константы класса FontPosture.

ЗначениеОписаниеFontPosture.NORMALОбычное начертание шрифта.FontPosture.ITALICКурсивное начертание шрифта.
FontPosture
fontWeight Задает толщину шрифта.StringЕсли задано значение, не являющееся элементом класса FontWeight. ArgumentErrorArgumentErrorЕсли задается после блокирования объекта FontDescription (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Задает толщину шрифта.

По умолчанию используется значение FontWeight.NORMAL.

Чтобы установить значения для этого свойства, используйте следующие константы класса FontWeight.

Строковое значениеОписаниеFontWeight.NORMALОбычная толщина шрифта.FontWeight.BOLDПолужирная толщина шрифта.
FontWeight
locked Определяет, является ли объект FontDescription заблокированным.BooleanЕсли задается после блокирования объекта FontDescription (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Определяет, является ли объект FontDescription заблокированным. Если задано значение true, изменение объекта FontDescription невозможно. Вызовите метод FontDescription.clone() для получения разблокированной копии объекта FontDescription. renderingMode Режим визуализации, используемый для данного текста.StringЕсли задано значение, не являющееся элементом класса RenderingMode. ArgumentErrorArgumentErrorЕсли задается после блокирования объекта FontDescription (для свойства locked задано значение true). IllegalOperationErrorflash.errors:IllegalOperationError Режим визуализации, используемый для данного текста. Используйте константы RenderingMode для этого свойства.

Применяется только к встроенным шрифтам.

По умолчанию используется значение RenderingMode.CFF.

Чтобы установить значения для этого свойства, используйте следующие константы класса RenderingMode.

Строковое значениеОписаниеRenderingMode.NORMALПрименяет обычную визуализацию текста, которая соответствует типу визуализации, используемому в Flash Player 7 и более ранних версиях.RenderingMode.CFFПрименяет визуализацию CFF (компактного формата шрифтов), которая делает текст более четким. (Эта функция стала доступной в проигрывателе Flash Player 10.) Визуализация CFF обеспечивает высококачественную визуализацию шрифтов мелкого размера.
RenderingMode
GroupElement Объект GroupElement группирует коллекцию объектов TextElement, GraphicElement или других объектов GroupElement, которые можно назначить как одно целое свойству content объекта TextBlock.flash.text.engine:ContentElement Объект GroupElement группирует коллекцию объектов TextElement, GraphicElement или других объектов GroupElement, которые можно назначить как одно целое свойству content объекта TextBlock. Объект GroupElement также может просто использовать общее форматирование с другим элементом GroupElement.

Когда GroupElement содержит другой объект GroupElement, этот внутренний GroupElement сохраняет собственное форматирование (параметры ElementFormat). Он не наследует форматирование внешнего GroupElement.

Большинство свойств форматирования не влияют на GroupElement. По этой причине можно создать текстовую строку для объекта GroupElement, имеющего нулевой параметр elementFormat. Несколько свойств формата, такие как kerning и ligature, все же оказывают влияние на форматирование там, где имеет место пересечение между членами группы. Если группа имеет нулевой формат, то при пересечении членов группы форматирование определяется форматом предшествующего элемента.

В примере создается красная рамка в виде объекта GraphicElement и совмещается с двумя текстовыми элементами для создания объекта GroupElement. Назначает объект GroupElement свойству content текстового блока TextBlock, из которого создаются три строки. package { import flash.display.Sprite; import flash.display.MovieClip; import flash.text.engine.ContentElement; import flash.text.engine.TextBlock; import flash.text.engine.TextElement; import flash.text.engine.GraphicElement; import flash.text.engine.GroupElement; import flash.text.engine.TextLine; import flash.text.engine.ElementFormat; import flash.text.engine.FontDescription; public class GroupElementExample extends Sprite { public function GroupElementExample():void { var redBox:MovieClip = new MovieClip(); redBox.graphics.beginFill(0xCC0000, 1.0); redBox.graphics.drawRect(0, 0, 20, 20); redBox.graphics.endFill(); var format:ElementFormat = new ElementFormat(); var fontDescription:FontDescription = new FontDescription("Arial"); format.fontSize = 16; format.fontDescription = fontDescription; var str1:String = "This red box is a GraphicElement "; var str2:String = " in the middle of two TextElements, " + " which together make " + "up a GroupElement in a TextBlock that is broken into three lines."; var textElement1:TextElement = new TextElement(str1,format); var graphicElement:GraphicElement = new GraphicElement(redBox,redBox.width,redBox.height, format); var textElement2:TextElement = new TextElement(str2, format); var groupVector:Vector.<ContentElement> = new Vector.<ContentElement>(); groupVector.push(textElement1, graphicElement, textElement2); var groupElement = new GroupElement(groupVector); var textBlock:TextBlock = new TextBlock(); textBlock.content = groupElement; createTextLines(textBlock); } private function createTextLines(textBlock:TextBlock):void { var yPos = 20; var line_length:Number = 450; var textLine:TextLine = textBlock.createTextLine (null, line_length); while (textLine) { addChild(textLine); textLine.x = 15; yPos += textLine.height+8; textLine.y = yPos; textLine = textBlock.createTextLine(textLine, line_length); } } } }
ContentElementGraphicElementTextBlockTextElementGroupElement Создает новый экземпляр GroupElement.Заданный element содержит элементы со значением null. ArgumentErrorArgumentErrorЗаданный element содержит элемент, не являющийся известным подклассом ContentElement. ArgumentErrorArgumentErrorЗаданный element содержит элементы, заданные в качестве значения content объекта TextBlock. ArgumentErrorArgumentErrorЗаданный element содержит элементы, которые уже являются членами группы, либо встречаются более одного раза в elements. ArgumentErrorArgumentErrorelementsnullВектор объектов ContentElement в GroupElement. Вектор может быть пуст. По умолчанию используется null. elementFormatflash.text.engine:ElementFormatnullФормат элемента для группы. По умолчанию используется null. Формат применяется к пересечениям элементов в группе, эти элементы не наследуют формат. eventMirrorflash.events:EventDispatchernullОбъект EventDispatcher, получающий копии каждого события, вызванного для текстовых строк, созданных на основе данного элемента содержимого. По умолчанию используется null. textRotationStringrotate0При вращении элемент был использован в качестве единого целого. Используйте константы TextRotation для этого свойства. Значение по умолчанию равно TextRotation.ROTATE_0. Создает новый экземпляр GroupElement. ContentElementElementFormatflash.events.EventDispatcherTextLineMirrorRegionTextRotationgetElementAtCharIndex Возвращает элемент, содержащий символ, заданный параметром charIndex.Если charIndex вне диапазона 0 — rawText.length. RangeErrorRangeErrorЭлемент, содержащий символ с индексом charIndex flash.text.engine:ContentElementcharIndexintОтсчитываемое от нуля значение символа, чей элемент нужно найти. Значение 0 соответствует первому символу в группе, ноне первому символу TextBlock. Возвращает элемент, содержащий символ, заданный параметром charIndex. getElementAt Возвращает элемент из группы.Если index вне диапазона. RangeErrorRangeErrorflash.text.engine:ContentElementindexintИндекс получаемого элемента. Возвращает элемент из группы. getElementIndex Возвращает элемент, содержащий символ, заданный параметром element.Индекс элемента, заданный свойством element или -1, если элемент вне группы. intelementflash.text.engine:ContentElementЭлемент в группе, индекс которого необходимо возвратить. Возвращает элемент, содержащий символ, заданный параметром element. groupElements Заменяет диапазон элементов, который задается параметрами beginIndex и endIndex для нового GroupElement с этими элементами.Если индексы beginIndex или endIndex находятся вне диапазона. RangeErrorRangeErrorНовая группа. flash.text.engine:GroupElementbeginIndexintОтсчитываемое от нуля значение индекса для начального положения диапазона группировки. endIndexintОтсчитываемое от нуля значение индекса, следующее за конечным положением диапазона группировки. Заменяет диапазон элементов, который задается параметрами beginIndex и endIndex для нового GroupElement с этими элементами. Согласно проекту, заменяются элементы от beginIndex до endIndex-1. mergeTextElements Смешивает текст из диапазона элементов, задаваемого параметрами beginIndex и endIndex в элементе, заданном beginIndex без изменения формата элемента.Если индексы beginIndex или endIndex находятся вне диапазона. RangeErrorRangeErrorЕсли какой-либо элемент в диапазоне не является объектом TextElement. ArgumentErrorArgumentErrorПервый текстовый элемент в диапазоне, теперь содержащим весь текст диапазона. flash.text.engine:TextElementbeginIndexintОтсчитываемое от нуля значение индекса для начального положения диапазона замены. endIndexintОтсчитываемое от нуля значение индекса, следующее за конечным положением диапазона слияния. Смешивает текст из диапазона элементов, задаваемого параметрами beginIndex и endIndex в элементе, заданном beginIndex без изменения формата элемента. Согласно проекту, сливаются элементы от beginIndex до endIndex-1. После смешивания текста элементы от beginIndex+1 до endIndex-1 удаляются из группы и для них отменяются родители, значение null присваивается их свойству group. TextElementreplaceElements Заменяет диапазон элементов, заданный параметрами beginIndex и endIndex, содержанием параметра newElements.Заданный параметр beginIndex или endIndex находится за пределами диапазона. RangeErrorRangeErrorЗаданное свойство newElements содержит элементы со значением null. ArgumentErrorArgumentErrorЗаданное свойство newElements содержит элементы this. ArgumentErrorArgumentErrorЗаданное свойство newElements содержит элементы, которые не являются известными подклассами ContentElement. ArgumentErrorArgumentErrorЗаданное свойство newElements содержит элементы, заданные в качестве значения свойства content объекта TextBlock. ArgumentErrorArgumentErrorЗаданное свойство newElements содержит элементы, которые уже являются членами группы, либо встречаются более раза в elements. ArgumentErrorArgumentErrorЕсли операция должна привести к вложенным вращениям внутри элемента GroupElement. ArgumentErrorArgumentErrorВектор, содержащий замещенные элементы. beginIndexintОтсчитываемое от нуля значение индекса для начального положения диапазона замены. endIndexintОтсчитываемое от нуля значение индекса, следующее за конечным положением диапазона замены. newElementsЭлементы для замены заданного диапазона элементов. Заменяет диапазон элементов, заданный параметрами beginIndex и endIndex, содержанием параметра newElements. Заменяются элементы от beginIndex до endIndex-1.

Для создания элементов передайте null для newElements. Для вставки элемента передайте то же значение для beginIndex и endIndex. Новый элемент вставляется перед заданным индексом. Для добавления элемента передайте elementCount для beginIndex и endIndex.

После выполнения операции замещенные элементы лишаются родителей, и возвращается значение null для свойств group.

setElements Устанавливает элементы в группе для содержимого вектора.Заданное value содержит элементы null. ArgumentErrorArgumentErrorЗаданное value содержит элементы this. ArgumentErrorArgumentErrorЗаданное value содержит элементы, которые не являются известными подклассами ContentElement. ArgumentErrorArgumentErrorЗаданное value содержит элементы в виде content, которые не являются известными подклассами TextBlock. ArgumentErrorArgumentErrorЗаданное value содержит элементы, которые уже являются членами группы, либо встречаются более раза в value. ArgumentErrorArgumentErrorЕсли операция должна привести к вложенным вращениям внутри элемента GroupElement. ArgumentErrorArgumentErrorvalue Устанавливает элементы в группе для содержимого вектора. splitTextElement Разбивает объект TextElement на два, создавая новый TextElement в указанной позиции.Если индексы elementIndex или charIndex лежат вне диапазона. RangeErrorRangeErrorЕсли элемент по индексу elementIndex не является TextElement. ArgumentErrorArgumentErrorНовый элемент, содержащий последнюю часть исходного текстового элемента. flash.text.engine:TextElementelementIndexintОтсчитываемый от нуля индекс положения элемента в группе. splitIndexintОтсчитываемый от нуля индекс положения элемента в TextElement, где будет производиться разбиение. Заданный символ — это первый символ нового TextElement. Разбивает объект TextElement на два, создавая новый TextElement в указанной позиции. TextElementungroupElements Разгруппировывает элементы во вложенном GroupElement, который задается с помощью groupIndex внутри внешнего GroupElement.Если groupIndex вне диапазона. RangeErrorRangeErrorЕсли элемент по индексу groupIndex не является объектом GroupElement. ArgumentErrorArgumentErrorgroupIndexintОтсчитываемый от нуля индекс для положения разбиваемой группы. Разгруппировывает элементы во вложенном GroupElement, который задается с помощью groupIndex внутри внешнего GroupElement. После выполнения операции разгрупированные элементы заменяют вложенный GroupElement, который становится элементом без родителей со значением null свойства group. elementCount Количество элементов в группе.int Количество элементов в группе.
ContentElement Класс ContentElement служит в качестве базового класса для типов элементов, которые могут появляться в GroupElement, а именно: объект GraphicElement, другой GroupElement или TextElement.Object Класс ContentElement служит в качестве базового класса для типов элементов, которые могут появляться в GroupElement, а именно: объект GraphicElement, другой GroupElement или TextElement.

ContentElement — это абстрактный базовый класс, поэтому экземпляры ContentElement нельзя создавать непосредственно. При вызове new ContentElement() выдается исключение ArgumentError.

Элемент ContentElement можно назначить только одному GroupElement или свойству content только одного текстового блока.

ElementFormatGraphicElementGroupElementTextBlock.contentTextElementTextLineMirrorRegionTextRotationContentElement При вызове конструктора new СontentElement() выдается исключение ArgumentError.elementFormatflash.text.engine:ElementFormatnullФормат элемента для текста в элементе. По умолчанию используется null. eventMirrorflash.events:EventDispatchernullОбъект EventDispatcher, получающий копии каждого события, вызванного для действительных текстовых строк, созданных на основе данного элемента содержимого. По умолчанию используется null. textRotationStringrotate0При вращении элемент был использован в качестве единицы измерения. Используйте константы TextRotation для этого свойства. Значение по умолчанию равно TextRotation.ROTATE_0. При вызове конструктора new СontentElement() выдается исключение ArgumentError. Однако можно вызывать конструкторы для следующих подклассов ContentElement:
  • new GraphicElement()
  • new GroupElement()
  • new TextElement()
GRAPHIC_ELEMENT Указывает на присутствие в тексте графического элемента.0xFDEFuint Указывает на присутствие в тексте графического элемента. rawTextuserData Дает возможность приложению связать произвольные данные с элементом. Дает возможность приложению связать произвольные данные с элементом.

По умолчанию используется null.

elementFormat Объект ElementFormat, используемый для элемента.flash.text.engine:ElementFormat Объект ElementFormat, используемый для элемента.

По умолчанию используется null.

Если задается свойство elementFormat, предоставленный объект ElementFormat заблокирован: для его свойства locked задано значение true. Изменение заблокированного объекта ElementFormat невозможно.

ElementFormatTextBlockTextElement
eventMirror Объект EventDispatcher, получающий копии каждого события, вызванного для действительных текстовых строк, созданных на основе данного элемента содержимого.flash.events:EventDispatcher Объект EventDispatcher, получающий копии каждого события, вызванного для действительных текстовых строк, созданных на основе данного элемента содержимого. Заданный объект может использоваться для настройки прослушивателей для текстовой ссылки или другого интерактивного фрагмента текста, так как при исполнении может быть сложно определить, какие части строк получены от определенных элементов содержимого. Также прослушиватели можно использовать для применения отделки, например подчеркивания, показатели которой невозможно определить до раскладки текста. Значение по умолчанию — null, то есть, зеркальные события не отправляются.

Зеркала событий представлены в текстовых строках в качестве экземпляров класса TextLineMirrorRegion. В зависимости от двунаправленной обработки и разрывов строк, можно создавать одну или несколько зеркальных областей.

По умолчанию используется null.

flash.events.EventDispatcherTextLineMirrorRegion
groupElement Объект GroupElement, содержащий этот элемент, или null, если это не группа.flash.text.engine:GroupElement Объект GroupElement, содержащий этот элемент, или null, если это не группа.

По умолчанию используется null.

GroupElement
rawText Копия текста в элементе, включая символы U+FDEF.String Копия текста в элементе, включая символы U+FDEF. Символ Юникод, U+FDEF, отмечает местоположение элемента графики в строке. textBlockBeginIndex Индекс в первого символа в этом элементе текстового блока.int Индекс в первого символа в этом элементе текстового блока. Это значение берется не из кэша, а вычисляется при каждом вызове метода.

Значением по умолчанию является -1.

textBlock Объект TextBlock, которому принадлежит этот элемент.flash.text.engine:TextBlock Объект TextBlock, которому принадлежит этот элемент.

По умолчанию используется null.

TextBlock
textRotation Поворот, который должен применяться к элементу, как к едином целому.StringЕсли задано значение, не являющееся членом TextRotation. ArgumentErrorArgumentErrorЕсли задано значение TextRotation.AUTO. ArgumentErrorArgumentErrorЕсли операция должна привести к вложенным вращениям внутри элемента GroupElement. ArgumentErrorArgumentError Поворот, который должен применяться к элементу, как к едином целому. Используйте константы TextRotation для этого свойства.

Значение по умолчанию равно TextRotation.ROTATE_0.

Конечный поворот любого глифа является суммой ElementFormat.textRotation, ContentElement.textRotation и TextBlock.lineRotation.

ContentElement.textRotation используется для создания короткого фрагмента текста, поворот которого отличается от поворота содержащей его строки. В качестве примера можно привести фрагменты TCY в японском тексте. TCY — это сокращение от Tate-Chu-Yoko, так называется размещение небольшого фрагмента текста по горизонтали (обычно это числа) среди вертикального японского текста. Чтобы создать абзац вертикального японского текста с фрагментом TCY, выполните следующие действия.

  1. Задайте TextBlock.lineRotation=TextRotation.ROTATE_90
  2. Задайте для TextBlock.content объект GroupElement, состоящий из трех объектов TextElement. Первый из этих элементов — это японский текст до фрагмента TCY, второй — латинский текст фрагмента TCY, а третий — японский текст после TCY.
  3. Задайте свойству textRotation объекта TCY TextElement значение TextRotation.ROTATE_270. Текстовый элемент TCY поворачивается как единое целое. Операция начинается с поворота на 90 градусов, унаследованного от строки. Добавление поворота на 270 градусов переводит фрагмент в горизонтальное положение.

Повернутые элементы содержимого не поддерживают вложенность. В любой иерархии элементов содержимого, независимо от уровня сложности, свойство textRotation можно задать только для одного элемента. Следующие методы и функции установки свойств выдают ошибку аргумента в случае обнаружения вложенного поворота:

  1. ContentElement.textRotation
  2. GroupElement.setElements
  3. GroupElement.replaceElements

В качестве значений этого свойства используйте следующие строковые значения:

Строковое значениеОписаниеTextRotation.ROTATE_0Элемент не поворачивается.TextRotation.ROTATE_90Элемент поворачивается на 90 градусов по часовой стрелке.TextRotation.ROTATE_180Элемент поворачивается на 180 градусов.TextRotation.ROTATE_270Элемент поворачивается на 270 градусов по часовой стрелке.TextRotation.AUTOНе поддерживается.
TextRotationElementFormat.textRotationTextBlock.lineRotation
text Копия текста в элементе, за исключением символов U+FDEF, представляющих графические элементы в объекте String.String Копия текста в элементе, за исключением символов U+FDEF, представляющих графические элементы в объекте String. TextElement.text
TextBlock Класс TextBlock является базовым для создания объектов TextLine, которые можно визуализировать, добавляя в список отображения.Object Класс TextBlock является базовым для создания объектов TextLine, которые можно визуализировать, добавляя в список отображения.

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

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

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

В этом примере демонстрируется три абзаца 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(); } } }
ContentElementGraphicElementGroupElementTextBaselineTextElementTextJustifierTextLineTextRotationTabStopTextBlock Создает объект TextBlock Заданный content не является известным подклассом ContentElement. ArgumentErrorArgumentErrorЗаданный content уже является членом группы. ArgumentErrorArgumentErrorЗаданная локаль lineRotation не является членом TextRotation. ArgumentErrorArgumentErrorЗаданная локаль baselineZero не является членом TextBaseline. ArgumentErrorArgumentErrorЗаданный bidiLevel меньше 0. ArgumentErrorArgumentErrorЗаданный tabStops содержит null элементов. ArgumentErrorArgumentErrorЗаданные tabStops не отсортированы по возрастанию позиции. ArgumentErrorArgumentErrorЗаданный baselineFontSize меньше 0. ArgumentErrorArgumentErrorcontentflash.text.engine:ContentElementnullСодержимое текстового блока. tabStopsnullОтступы для текста в блоке. textJustifierflash.text.engine:TextJustifiernullОбъект TextJustifier для использования в этом блоке при создании строки. Средство расстановки переносов отсутствует, будет создано средство по умолчанию на основе английской локали. lineRotationStringrotate0Вращение, примененное к текстовым строкам, созданным из текстового блока в виде единиц. baselineZeroStringromanУказывает, какая базовая строка находит в точке y=0 для всех строк блока. bidiLevelint0Уровень двусторонней вложенности текста в блоке по умолчанию. applyNonLinearFontScalingBooleantrueУказывает, что необходимо улучшить внешний вид экрана за счет качества печати визуального редактора. baselineFontDescriptionflash.text.engine:FontDescriptionnullЗадает описание шрифта, из которого нужно выводить базовые строки для всех строк блока. baselineFontSizeNumber12.0Задает размер для использования с baselineFontDescription. Этот параметр игнорируется, если baselineFontDescription равно null. Создает объект TextBlock applyNonLinearFontScalingbaselineFontDescriptionbaselineFontSizebaselineZerobidiLevellineRotationtabStopsTextJustifiercreateTextLine Предписывает текстовому блоку создать строку текста из своего содержимого, которая бы начиналась в точке, заданной параметром previousLine, и заканчивалась в точке, заданной параметром width.Если элемент TextLine, заданный параметром previousLine, недействителен. ArgumentErrorArgumentErrorЕсли объект TextLine, определенный свойством previousLine принадлежит другому объекту TextBlock. ArgumentErrorArgumentErrorЕсли width меньше нуля, кроме случаев, когда fitSomething равно true. ArgumentErrorArgumentErrorЕсли значение width больше, чем TextLine.MAX_LINE_WIDTH. ArgumentErrorArgumentErrorЕсли один или несколько элементов содержимого текстового блока равны null ElementFormat. IllegalOperationErrorflash.errors:IllegalOperationErrorТекстовая строка или null, если текстовый блок пуст или его ширина меньше ширины текстового элемента. Для различения этих случаев проверьте свойство textLineCreationResult текстового блока. flash.text.engine:TextLinepreviousLineflash.text.engine:TextLinenullУказывает на ранее короткую строку, которой закрывается абзац. Может быть null, если первая строка короткая. widthNumber1000000Указывает требуемую ширину строки в пикселях. Фактическая ширина может быть меньше. lineOffsetNumber0.0Необязательный параметр, задающий разницу в пикселях между началом линии и отступом. Может использоваться, если строки не выровнены, но при этом необходимо выровнять их отступы. Значение этого параметра по умолчанию 0,0. fitSomethingBooleanfalseНеобязательный параметр, который предписывает проигрывателю Flash Player вместить хотя бы один символ в текстовую строку вне зависимости от того, какая задана ширина (даже если она равна нулю или отрицательна, что в остальных случаях приводит к исключению). Предписывает текстовому блоку создать строку текста из своего содержимого, которая бы начиналась в точке, заданной параметром previousLine, и заканчивалась в точке, заданной параметром width. Текстовая строка — это объект TextLine, который можно добавить к списку отображения.

Разрыв строк в диапазоне текста в блоке, который уже разорван, может привести к изменению валидности строк в диапазоне разрыва и после него. Состояние строк может меняться с VALID на INVALID или POSSIBLY_INVALID. Если заново разорванная строка выравнивается с ранее разорванной строкой с состоянием POSSIBLY_INVALID, ранее разорванная строка и все последующие с состоянием POSSIBLY_INVALID снова меняют состояние на VALID. Валидность строк, значения которых не являются членами класса TextLineValidity не изменяются на VALID, но могут измениться на INVALID. Проверьте свойство firstInvalidLine после внесения любых изменений в текстовый блок, чтобы увидеть, где начинается или возобновляется разрыв строк.

Можно создать искусственные разрывы слов, включив в текст нулевой пробел Unicode (ZWSP). Это может быть полезно для таких языков, как тайский, где для правильного разрыва строк требуется словарь. В среду выполнения Flash не встроен такой словарь.

Во избежание чрезмерного потребления памяти, когда созданы все необходимые строки и не предвидится необходимость повторной разбивки, например, в результате изменения размера контейнера, необходимо вызвать метод releaseLineCreationData(), который позволяет блоку текста очистить временные данные, связанные с разрывом строк.

В примере показано, как вызывать метод 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); } } } }
TextLineTextLine.validityTextLineValidityTextBlock.releaseLineCreationData()
dump Выдает базовое содержимое TextBlock в виде строки XML.String Выдает базовое содержимое TextBlock в виде строки XML. Это может пригодиться при автоматическом тестировании, так как включает сведения о тексте, форматировании и компоновке.

Следующий код описывает вывод.

	 >block<
	 	[0-N LINE]
	 >/block<
	 

Сведения о выводе для каждой строки см. в описании метода TextLine.dump().

Примечание. Содержимое и формат вывода могут измениться в будущем. Adobe не гарантирует обратной совместимости данного метода.

TextLine.dump()
findNextAtomBoundary Находит индекс следующей границы атома для заданного индекса символа, исключая символ по заданному индексу.Указанный index лежит вне диапазона. RangeErrorRangeErrorСтрока TextLine, которой принадлежит индексируемый символ, недействительна. IllegalOperationErrorflash.errors:IllegalOperationErrorИндекс следующей границы атома после заданного индекса символа. intafterCharIndexintЗадает индекс символа, после которого нужно искать следующую границу атома. Находит индекс следующей границы атома для заданного индекса символа, исключая символ по заданному индексу. Символы между границами атомов вместе формируют один атом в TextLine, например, «e» и надстрочный значок ударения. TextLine.atomCountfindNextWordBoundary Находит индекс следующей границы слова от указанного индекса символа, исключая символ по заданному индексу.Указанный index лежит вне диапазона. RangeErrorRangeErrorСтрока TextLine, которой принадлежит индексируемый символ, недействительна. IllegalOperationErrorflash.errors:IllegalOperationErrorИндекс следующей границы слова после заданного индекса символа. intafterCharIndexintЗадает индекс символа, после которого нужно искать следующую границу слова. Находит индекс следующей границы слова от указанного индекса символа, исключая символ по заданному индексу. Границы слов определяются на основе свойств символов в кодировке Unicode. findPreviousAtomBoundary Находит индекс предыдущей границы атома для указанного индекса символа, исключая символ по указанному индексу.Указанный index лежит вне диапазона. RangeErrorRangeErrorСтрока TextLine, которой принадлежит индексируемый символ, недействительна. IllegalOperationErrorflash.errors:IllegalOperationErrorИндекс предыдущей границы атома до заданного индекса символа. intbeforeCharIndexintЗадает индекс символа, до которого нужно искать предыдущую границу атома. Находит индекс предыдущей границы атома для указанного индекса символа, исключая символ по указанному индексу. Символы между границами атомов вместе формируют один атом в TextLine, например, «e» и надстрочный значок ударения. TextLine.atomCountfindPreviousWordBoundary Находит индекс предыдущей границы слова для указанного индекса символа, исключая символ по указанному индексу.Указанный index лежит вне диапазона. RangeErrorRangeErrorСтрока TextLine, которой принадлежит индексируемый символ, недействительна. IllegalOperationErrorflash.errors:IllegalOperationErrorИндекс предыдущей границы слова до заданного иныдекса символа. intbeforeCharIndexintЗадает индекс символа, до которого нужно искать предыдущую границу слова. Находит индекс предыдущей границы слова для указанного индекса символа, исключая символ по указанному индексу. Границы слов определяются на основе свойств символов в кодировке Unicode. getTextLineAtCharIndex Возвращает элемент TextLine, содержащий символ, заданный параметром charIndex.Указанный индекс символа находится за пределами диапазона. RangeErrorRangeErrorЭлемент TextLine, содержащий символ с индексом charIndex. flash.text.engine:TextLinecharIndexintОтсчитываемое от нуля значение индекса для символа (например, первый символ — 0, второй символ — 1 и т.д.). Возвращает элемент TextLine, содержащий символ, заданный параметром charIndex. recreateTextLine Предписывает текстовому блоку повторно использовать существующую строку для создания строки текста из своего содержимого, которая бы начиналась в точке, заданной параметром previousLine, и заканчивалась в точке, заданной параметром width.Если textLine имеет нулевое значение. ArgumentErrorArgumentErrorЕсли элемент TextLine, заданный параметром previousLine, недействителен. ArgumentErrorArgumentErrorЕсли объект TextLine, определенный свойством previousLine принадлежит другому объекту TextBlock. ArgumentErrorArgumentErrorЕсли объект TextLine, определенный свойством previousLine, также указан в свойстве textLine. ArgumentErrorArgumentErrorЕсли width меньше нуля, кроме случаев, когда fitSomething равно true. ArgumentErrorArgumentErrorЕсли значение width больше, чем TextLine.MAX_LINE_WIDTH. ArgumentErrorArgumentErrorЕсли один или несколько элементов содержимого текстового блока равны null ElementFormat. IllegalOperationErrorflash.errors:IllegalOperationErrorТекстовая строка или null, если текстовый блок пуст или его ширина меньше ширины текстового элемента. Для различения этих случаев проверьте свойство textLineCreationResult текстового блока. flash.text.engine:TextLinetextLineflash.text.engine:TextLineОпределяет созданный ранее объект TextLine для повторного использования. previousLineflash.text.engine:TextLinenullУказывает на ранее короткую строку, которой закрывается абзац. Может быть null, если первая строка короткая. widthNumber1000000Указывает требуемую ширину строки в пикселях. Фактическая ширина может быть меньше. lineOffsetNumber0.0Необязательный параметр, задающий разницу в пикселях между началом линии и отступом. Может использоваться, если строки не выровнены, но при этом необходимо выровнять их отступы. Значение этого параметра по умолчанию 0,0. fitSomethingBooleanfalseНеобязательный параметр, который предписывает проигрывателю Flash Player вместить хотя бы один символ в текстовую строку вне зависимости от того, какая задана ширина (даже если она равна нулю или отрицательна, что в остальных случаях приводит к исключению). Предписывает текстовому блоку повторно использовать существующую строку для создания строки текста из своего содержимого, которая бы начиналась в точке, заданной параметром 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 с именем 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;
TextBaselineTextLineTextLine.validityTextLineValidityTextBlock.releaseLineCreationData()
releaseLineCreationData Дает текстовому блоку команду очистить все временные данные, связанные с созданием текстовых строк. Дает текстовому блоку команду очистить все временные данные, связанные с созданием текстовых строк. Чтобы сократить объем памяти, используемый приложений, необходимо вызвать метод releaseLineCreationData() по завершении создания текстовых строк из блока текста. Тем не менее, если требуется увеличить производительность при повторной разбивке строк (например, при изменении размера контейнера), метод releaseLineCreationData() вызывать не следует. Таким образом, приложение самостоятельно регулирует использование памяти и производительность.

Если изменение текста не предвидится, рекомендуется следующий процесс: инициализируйте блок текста, вызывайте метод createTextLine() столько, сколько нужно для создания нужного ввода, а затем вызовите метод releaseLineCreationData().

TextBlock.createTextLine()
releaseLines Удаляет диапазон текстовых строк из списка строк, поддерживаемых текстовым блоком TextBlock.Если TextLine, заданная параметрами firstLine или lastLine не включена в список текстовых строк, поддерживаемых блоком. ArgumentErrorArgumentErrorfirstLineflash.text.engine:TextLineУказывает первую строку для освобождения. lastLineflash.text.engine:TextLineУказывает последнюю строку для освобождения. Удаляет диапазон текстовых строк из списка строк, поддерживаемых текстовым блоком TextBlock. Это позволяет очищать строки, если не существует других ссылок.

Задает значение членов textBlock, nextLine и previousLine удаленных строк как null. Задает значение validity удаленных строк и следующих за ними в блоке TextBlock TextLineValidity.INVALID.

TextLine
userData Дает возможность приложению связать произвольные данные с блоком текста. Дает возможность приложению связать произвольные данные с блоком текста. Данные могут быть информацией, ссылающейся на содержимое, такое как дата редакции или имя автора, или могут быть кэшированными данными, используемыми при обработке. applyNonLinearFontScaling Указывает, что требуется улучшить внешний вид экрана за счет качества печати WYSIWYG («получаешь то, что видишь»).Boolean Указывает, что требуется улучшить внешний вид экрана за счет качества печати WYSIWYG («получаешь то, что видишь»). Для платформ и шрифтов, которые не делают поддержки sub положение глифа пиксела во время рендеринга шрифта устройства, но делать поддержку нелинейный масштаб, устанавливая эти свойства в true активирует использование метрических в некоторой стоимости к точности печати WYSIWYG, особенно для маленьких размеров точки. Не линейный масштаб шрифта работает selectivly масштабом ширина отдельных глифов, чтобы скрыть неприглядные зазоры, причиненные привязыванием пиксела.

На платформах, которые делают положение глифа подпиксела поддержки, проигнорирован этот флаг.

Этот флаг не действует на рендеринге встроенного шрифта

По умолчанию используется значение true.

baselineFontDescription Шрифт, который используется для определения базовых линий для всех строк, созданных из блока, независимо от их содержимого.flash.text.engine:FontDescription Шрифт, который используется для определения базовых линий для всех строк, созданных из блока, независимо от их содержимого. Базовые линии зависят от шрифта и его размера.

По умолчанию используется null. Когда шрифт базовой линии имеет значение null, размер шрифта базовой линии игнорируется, а базовая линия отдельно взятой строки определяется на основе шрифта и размера самого крупного текста в строке. Если заданы и baselineFontDescription и baselineFontSize, эти свойства определяют базовые линии для всех строк в текстовом блоке, независимо от их содержимого. Такая комбинация чаще всего используется в восточно-азиатской типографике.

baselineFontSizeFontDescription
baselineFontSize Размер шрифта, который используется для вычисления базовых линий для строк, создаваемых из блока.NumberЗаданный baselineFontSize меньше 0. ArgumentErrorArgumentError Размер шрифта, который используется для вычисления базовых линий для строк, создаваемых из блока. Базовые линии зависят от шрифта и его размера.

По умолчанию используется значение 12. Когда шрифт базовой линии имеет значение null, размер шрифта базовой линии игнорируется, а базовая линия отдельно взятой строки определяется на основе шрифта и размера самого крупного текста в строке.

baselineFontDescriptionFontDescription
baselineZero Задает, какая базовая линия находится в точке с координатой у=0 для строк, созданных из этого блока.StringЕсли задано значение, не являющееся членом TextBaseline. ArgumentErrorArgumentError Задает, какая базовая линия находится в точке с координатой у=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.
TextBaseline
bidiLevel Задает уровень двунаправленной вложенности текста в блоке по умолчанию.intЕсли задано значение меньше 0. ArgumentErrorArgumentError Задает уровень двунаправленной вложенности текста в блоке по умолчанию. Четное число означает направление слева направо, а нечетное — справа налево. Можно увеличить значение bidiLevel, чтобы указать количество уровней вложенности того или иного текста с точки зрения направления слева направо и справа налево.

Значением по умолчанию является 0.

При модификации bidiLevel валидность всех разбитых ранее строк меняется на TextLineValidity.INVALID. После изменения bidiLevel свойство firstInvalidLine имеет то же значение, что и firstLine, и в объекте TextBlock необходимо повторно разбивать все строки.

В этом примере показан та же текстовая строка (логический порядок: 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); } } }
createTextLine()
content Хранит содержимое текстового блока.flash.text.engine:ContentElementЕсли задано значение, не являющееся известным подклассом ContentElement. ArgumentErrorArgumentErrorЗаданное значение value уже является членом группы. ArgumentErrorArgumentError Хранит содержимое текстового блока. Так как 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 необходимо повторно разбивать все строки.

ContentElementGraphicElementGroupElementTextElementcreateTextLine()
firstInvalidLine Указывает первую строку в текстовом блоке, в котором значение свойства TextLine.validity не равно TextLineValidity.VALID.flash.text.engine:TextLine Указывает первую строку в текстовом блоке, в котором значение свойства TextLine.validity не равно TextLineValidity.VALID.

По умолчанию используется null.

TextLine.validityTextLineValidity
firstLine Первый объект TextLine в TextBlock, если такой имеется.flash.text.engine:TextLine Первый объект TextLine в TextBlock, если такой имеется.

По умолчанию используется null.

TextLine
lastLine Последний объект TextLine в TextBlock, если такой имеется.flash.text.engine:TextLine Последний объект TextLine в TextBlock, если такой имеется.

По умолчанию используется null.

TextLine
lineRotation Поворачивает строки в текстовом блоке как единое целое.StringЕсли задано значение, не являющееся членом TextRotation. ArgumentErrorArgumentErrorЕсли задано значение TextRotation.AUTO. ArgumentErrorArgumentError Поворачивает строки в текстовом блоке как единое целое. Вызовите метод 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Не поддерживается.
В этом примере в 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; } } } }
ContentElement.textRotationElementFormat.textRotationTextLineTextRotation
tabStops Задает позиции табуляции для текста в блоке в виде Vector объектов TabStop.Заданный tabStops содержит null элементов. ArgumentErrorArgumentErrorЗаданные tabStops не отсортированы по возрастанию позиции. ArgumentErrorArgumentError Задает позиции табуляции для текста в блоке в виде Vector объектов TabStop.

Значение по умолчанию — null, то есть, позиции табуляции не заданы. Когда позиции табуляции не заданы (или точка вставки находится за последней указанной позицией табуляции), среда выполнения по умолчанию создает табуляцию размером около 1 см.

Когда задается свойство tabStops, объект TextBlock создает копию вектора для внутреннего использования. Изменение исходного вектора или его содержимого не влияет на объект TextBlock. Когда запрашивается свойство tabStops, возвращается копия внутреннего вектора. И опять же, изменение этого возвращенного вектора или его содержимого не влияет на объект TextBlock.

TabStop
textJustifier Задает TextJustifier для использования при создании строки.flash.text.engine:TextJustifierЕсли задано значение, не являющееся известным подклассом TextJustifier. ArgumentErrorArgumentError Задает TextJustifier для использования при создании строки.

Значением по умолчанию является объект TextJustifier, созданный по умолчанию.

Когда задается свойство textJustifier, объект TextBlock создает копию объекта для внутреннего использования. Изменение исходного объекта не влияет на объект TextBlock. Когда запрашивается свойство textJustifier, возвращается копия внутреннего объекта. И опять же, изменение этого возвращенного объекта не влияет на объект TextBlock.

EastAsianJustifierSpaceJustifierTextJustifier
textLineCreationResult Показывает результат операции createTextLine().String Показывает результат операции createTextLine(). Изменение содержимого в блоке приводит к тому, что сделанные ранее разрывы строк становятся недействительными, а значение свойства сбрасывается на null.

По умолчанию используется null.

Значениями этого свойства являются члены класса TextLineCreationResult

Строковое значениеОписаниеTextLineCreationResult.SUCCESSРазрыв строки выполнен успешно.TextLineCreationResult.COMPLETEЛибо вновь созданная строка идеально выровнялась со следующими строками, валидность которых сменилась с POSSIBLY_INVALID на VALID, либо строка не была создана, так как весь текст в блоке уже разбит на строки.TextLineCreationResult.INSUFFICIENT_WIDTHСтрока не создана, так как не обнаружен текст, подходящий для заданной ширины.
TextLineCreationResult
TextLineCreationResult Класс TextLineCreationResult является перечислением констант, используемых вместе с TextBlock.textLineCreationResult.Object Класс TextLineCreationResult является перечислением констант, используемых вместе с TextBlock.textLineCreationResult. TextBlock.createTextLine()TextBlock.textLineCreationResultCOMPLETE Указывает, что строка не создана, так как весь текст в блоке уже был разбит.completeString Указывает, что строка не создана, так как весь текст в блоке уже был разбит. EMERGENCY Указывает, что строка создана с вынужденным разрывом, так как в заданной ширине не было доступной возможности разрыва.emergencyString Указывает, что строка создана с вынужденным разрывом, так как в заданной ширине не было доступной возможности разрыва. INSUFFICIENT_WIDTH Указывает, что строка не создана, так как текст не поместился в заданную ширину и в вызове createTextLine() не было определено свойство fitSomething.insufficientWidthString Указывает, что строка не создана, так как текст не поместился в заданную ширину и в вызове createTextLine() не было определено свойство fitSomething. SUCCESS Указывает, что разрыв строки выполнен успешно.successString Указывает, что разрыв строки выполнен успешно. LigatureLevel Класс LigatureLevel является перечислением констант, с помощью которых задается свойство ligatureLevel класса ElementFormat.Object Класс LigatureLevel является перечислением констант, с помощью которых задается свойство ligatureLevel класса ElementFormat. Лигатура возникает, когда две или более литеры объединяются в один глиф. Лигатуры обычно заменяют последовательные символы с общими компонентами, такие как пары букв «fi», «fl» или «ae». Они используются как с латинскими, так и с нелатинскими наборами символов.

Примечание. При работе со шрифтами арабского или сирийского языка для ligatureLevel должно устанавливаться значение MINIMUM или выше.

ElementFormat.ligatureLevelCOMMON Задает обычные лигатуры.commonString Задает обычные лигатуры. EXOTIC Задает экзотические лигатуры.exoticString Задает экзотические лигатуры. MINIMUM Задает минимальные лигатуры.minimumString Задает минимальные лигатуры. NONE Задает отсутствие лигатур.noneString Задает отсутствие лигатур. UNCOMMON Задает необычные лигатуры.uncommonString Задает необычные лигатуры.
TextRotation Класс TextRotation является перечислением констант, используемых со следующими свойствами: ElementFormat.textRotation, ContentElement.textRotation, TextBlock.lineRotation и TextLine.getAtomTextRotation().Object Класс TextRotation является перечислением констант, используемых со следующими свойствами: ElementFormat.textRotation, ContentElement.textRotation, TextBlock.lineRotation и TextLine.getAtomTextRotation().

Конечный поворот глифа представляет собой сумму TextBlock.lineRotation, ElementFormat.textRotation и ContentElement.textRotation

ElementFormat.textRotationContentElement.textRotationTextBlock.lineRotationTextLine.getAtomTextRotation()AUTO Задает поворот на 90 градусов против часовой стрелки только для полноширинных и широких глифов, в соответствии со свойствами Юникод для глифа.autoString Задает поворот на 90 градусов против часовой стрелки только для полноширинных и широких глифов, в соответствии со свойствами Юникод для глифа. Обычно это значение используется с восточно-азиатскими текстами, чтобы поворачивать только глифы, требующие поворота. Этот поворот применяется только к вертикальному тексту, чтобы возвращать полноширинным и широким символам вертикальную ориентацию, не затрагивая остальных символов. ROTATE_0 Задает отсутствие поворота.rotate0String Задает отсутствие поворота. ROTATE_180 Задает поворот на 180 градусов.rotate180String Задает поворот на 180 градусов. ROTATE_270 Задает поворот на 270 градусов по часовой стрелке.rotate270String Задает поворот на 270 градусов по часовой стрелке. ROTATE_90 Задает поворот на 90 градусов по часовой стрелке.rotate90String Задает поворот на 90 градусов по часовой стрелке.
TabAlignment Класс TabAlignment является перечислением констант, с помощью которых задается свойство tabAlignment класса TabStop.Object Класс TabAlignment является перечислением констант, с помощью которых задается свойство tabAlignment класса TabStop. TabStop.alignmentTextBlock.tabStopsCENTER Помещает центр текста с табуляцией в позиции табуляции.centerString Помещает центр текста с табуляцией в позиции табуляции. DECIMAL Помещает метку выравнивания текста с табуляцией в позиции табуляции.decimalString Помещает метку выравнивания текста с табуляцией в позиции табуляции. TabStop.decimalAlignmentTokenEND Помещает конец текста с табуляцией в позиции табуляции.endString Помещает конец текста с табуляцией в позиции табуляции. START Помещает начало текста с табуляцией в позицию табуляции.startString Помещает начало текста с табуляцией в позицию табуляции. GraphicElement Класс GraphicElement представляет графические элементы в объекте TextBlock или GroupElement.flash.text.engine:ContentElement Класс GraphicElement представляет графические элементы в объекте TextBlock или GroupElement. Назначьте объект GraphicElement свойству content объекта TextBlock, чтобы отобразить графику или изображение с помощью метода TextBlock.createTextLine(). Назначьте его объекту GroupElement, чтобы объединить с другими графическими или текстовыми элементами. В следующем примере создает текстовый блок с графическим элементом (красная рамка) и отображается с добавлением второго блока под ним с заголовком. package { import flash.display.Sprite; import flash.display.MovieClip; import flash.text.engine.TextBlock; import flash.text.engine.TextElement; import flash.text.engine.GraphicElement; import flash.text.engine.TextLine; import flash.text.engine.ElementFormat; import flash.text.engine.FontDescription; public class GraphicElementExample extends Sprite { public function GraphicElementExample():void { var format:ElementFormat = new ElementFormat(); format.fontSize = 14; var redBox:MovieClip = new MovieClip(); redBox.graphics.beginFill(0xCC0000, 1.0); redBox.graphics.drawRect(0,0, 200, 200); redBox.graphics.endFill(); var graphicElement:GraphicElement = new GraphicElement(redBox,redBox.width,redBox.height, format); var textBlock:TextBlock = new TextBlock(); textBlock.content = graphicElement; var textLine1:TextLine = textBlock.createTextLine(null,redBox.width); addChild(textLine1); textLine1.x = 15 textLine1.y = 215 var str:String = "Your picture here ..."; var textElement:TextElement = new TextElement(str, format); textBlock = new TextBlock(); textBlock.content = textElement; var textLine2 = textBlock.createTextLine(null, 300); addChild(textLine2); textLine2.x = textLine1.x; textLine2.y += textLine1.y + format.fontSize; } } } ContentElementGroupElementTextBlockGraphicElement Создает новый экземпляр GraphicElement.graphicflash.display:DisplayObjectnullDisplayObject для наполнения GraphicElement. По умолчанию используется null. elementWidthNumber15.0Ширина области, зарезервированной для элемента (в пикселах). Значение по умолчанию равно 15. elementHeightNumber15.0Высота области, зарезервированной для элемента (в пикселах). Значение по умолчанию равно 15. elementFormatflash.text.engine:ElementFormatnullФормат элемента. По умолчанию используется null. eventMirrorflash.events:EventDispatchernullОбъект EventDispatcher, получающий копии каждого события, вызванного для текстовых строк, созданных на основе данного элемента содержимого. По умолчанию используется null. textRotationStringrotate0При вращении элемент был использован в качестве единого целого. Используйте константы flash.text.engine.TextRotation для этого свойства. Значение по умолчанию равно flash.text.engine.TextRotation.ROTATE_0. Создает новый экземпляр GraphicElement.

Регистрационная точка графического элемента совпадает с левым верхним углом области, заданным параметрами elementHeight, elementWidth и elementFormat.baselineShift. Графический элемент не масштабируется для соответствия размеру области. Объект GraphicElement обладает свойствами eventMirror, elementWidth и elementHeight и не является графическим элементом, не определяет размер и положение результирующей зеркальной области. Если используется загрузчик, графический элемент может не загружаться во время создания текстовой строки и зеркальных областей.

GroupElement
elementHeight Высота в пикселях, резервируемая для графического элемента в строке.Number Высота в пикселях, резервируемая для графического элемента в строке. За масштабирование графического элемента отвечает вызывающий элемент.

Значением по умолчанию является 15.0.

elementWidth Ширина в пикселях, резервируемая для графического элемента в строке.Number Ширина в пикселях, резервируемая для графического элемента в строке. За масштабирование графического элемента отвечает вызывающий элемент.

Значением по умолчанию является 15.0.

graphic Объект DisplayObject, который должен использоваться в качестве графического элемента для GraphicElement.flash.display:DisplayObject Объект DisplayObject, который должен использоваться в качестве графического элемента для GraphicElement.

По умолчанию используется null.

Когда GraphicElement становится частью текстовой строки, графический элемент добавляется в качестве ее дочернего элемента. Когда задается графический элемент, из строки удаляется старый графический элемент и добавляется новый.

FontWeight Класс FontWeight является перечислением констант, используемых вместе с FontDescription.fontWeight.Object Класс FontWeight является перечислением констант, используемых вместе с FontDescription.fontWeight. flash.text.engine.FontDescription.fontWeightBOLD Используется для указания полужирной толщины шрифта.boldString Используется для указания полужирной толщины шрифта. NORMAL Используется для указания обычной толщины шрифта.normalString Используется для указания обычной толщины шрифта. TextBaseline Класс TextBaseline является перечислением констант, используемых для определения свойств dominantBaseline и alignmentBaseline класса ElementFormat.Object Класс TextBaseline является перечислением констант, используемых для определения свойств dominantBaseline и alignmentBaseline класса ElementFormat. Также можно использовать свойство baselineZero класса TextBlock. Рассмотрим следующую ситуацию.

Строка состоит из четырех объектов TextElement, содержащих текст a, b, cccccccc и X соответственно. Элемент, содержащий Х, определяет базовые линии строки, так как является самым большим из всех элементов. Латинская базовая линия элемента Х выравнивается по латинской базовой линии строки. Идеографическая верхняя точка элемента а выравнивается по идеографической верхней линии строки. Идеографическая нижняя точка элемента b выравнивается по идеографической нижней линии строки. Идеографическая центральная точка элемента cccccccc выравнивается по идеографической центральной линии строки.

ElementFormat.dominantBaselineElementFormat.alignmentBaselineTextBlock.baselineZeroASCENT Задает базовую линию верхнего выносного элемента.ascentString Задает базовую линию верхнего выносного элемента. Для текстовых элементов это значение определяется шрифтом и размером кегля. Для графического элемента текстовый процессор использует геометрический верх. ElementFormat.dominantBaselineElementFormat.alignmentBaselineTextBlock.baselineZeroDESCENT Задает базовую линию нижнего выносного элемента.descentString Задает базовую линию нижнего выносного элемента. Для текстовых элементов это значение определяется шрифтом и размером кегля. Для графического элемента текстовый элемент использует геометрический низ элемента. ElementFormat.dominantBaselineElementFormat.alignmentBaselineTextBlock.baselineZeroIDEOGRAPHIC_BOTTOM Задает идеографическую нижнюю базовую линию.ideographicBottomString Задает идеографическую нижнюю базовую линию. Для текстовых элементов это значение определяется шрифтом и размером кегля. Для графического элемента текстовый процессор использует геометрический низ. ElementFormat.dominantBaselineElementFormat.alignmentBaselineTextBlock.baselineZeroIDEOGRAPHIC_CENTER Задает идеографическую центральную базовую линию.ideographicCenterString Задает идеографическую центральную базовую линию. Для текстовых элементов это значение определяется шрифтом и размером кегля. Для графического элемента текстовый процессор использует геометрический центр. ElementFormat.dominantBaselineElementFormat.alignmentBaselineTextBlock.baselineZeroIDEOGRAPHIC_TOP Задает идеографическую верхнюю базовую линию.ideographicTopString Задает идеографическую верхнюю базовую линию. Для текстовых элементов это значение определяется шрифтом и размером кегля. Для графического элемента текстовый процессор использует геометрический верх. ElementFormat.dominantBaselineElementFormat.alignmentBaselineTextBlock.baselineZeroROMAN Задает латинскую базовую линию.romanString Задает латинскую базовую линию. Для текстовых элементов это значение определяется шрифтом и размером кегля. Для графического элемента текстовый процессор использует геометрический низ. ElementFormat.dominantBaselineElementFormat.alignmentBaselineTextBlock.baselineZeroUSE_DOMINANT_BASELINE Указывает, что alignmentBaseline имеет то же значение, что и dominantBaseline.useDominantBaselineString Указывает, что alignmentBaseline имеет то же значение, что и dominantBaseline. Используйте это значение только для определения ElementFormat.alignmentBaseline. ElementFormat.alignmentBaseline
BreakOpportunity Класс BreakOpportunity является перечислением констант, с помощью которых задается свойство breakOpportunity класса ElementFormat.Object Класс BreakOpportunity является перечислением констант, с помощью которых задается свойство breakOpportunity класса ElementFormat. Это свойство определяет, какие символы могут использоваться для разрыва, когда обтекающий текст разбивается на несколько строк. ElementFormat.breakOpportunityALL Рассматривает все символы в объекте ContentElement как возможности для разрыва строки, то есть разрыв строки будет осуществляться после каждого символа.allString Рассматривает все символы в объекте ContentElement как возможности для разрыва строки, то есть разрыв строки будет осуществляться после каждого символа. Этот вариант можно использовать для создания максимально коротких строк, которые можно использовать для создания текста в строке или подобных эффектов. ANY Рассматривает любой символ в объекте ContentElement как возможность разрыва строки.anyString Рассматривает любой символ в объекте ContentElement как возможность разрыва строки. Это значение обычно используется, когда латинский текст встраивается с восточно-азиатский текст и желательны разрывы строк в середине слов. AUTO Определяет возможности разрыва строк на основе свойств символов Юникод.autoString Определяет возможности разрыва строк на основе свойств символов Юникод. Этот параметр реализует свойства разрыва строк Юникод, определенные в приложении №14 Стандарта Юникод. Статья по свойствам разрыва строк Юникод.NONE Не рассматривает ни один из символов объекта ContentElement в качестве возможности разрыва строки.noneString Не рассматривает ни один из символов объекта ContentElement в качестве возможности разрыва строки. DigitWidth Класс DigitWidth является перечислением констант, с помощью которых задается свойство digitWidth класса ElementFormat.Object Класс DigitWidth является перечислением констант, с помощью которых задается свойство digitWidth класса ElementFormat. flash.text.engine.ElementFormat.digitWidthDEFAULT Служит для задания ширины цифр по умолчанию.defaultString Служит для задания ширины цифр по умолчанию. Результаты зависят от шрифта; символы используют настройки, определенные дизайнером шрифтов без применения каких-либо функций. PROPORTIONAL Служит для задания пропорциональной ширины цифр.proportionalString Служит для задания пропорциональной ширины цифр. TABULAR Служит для задания табличной ширины цифр.tabularString Служит для задания табличной ширины цифр. CFFHinting Класс CFFHinting определяет значения для хинтинга cff в классе FontDescription.Object Класс CFFHinting определяет значения для хинтинга cff в классе FontDescription.

Хинтинг регулирует отображение контура шрифта, чтобы он ровнялся по пиксельной сетке. На экранах небольшого размера хинтинг создает для читателей четкий и удобочитаемый текст.

flash.text.engine.FontDescriptionHORIZONTAL_STEM Привязывает жирные горизонтальные основы к пиксельной сетке для улучшения удобочитаемости.horizontalStemString Привязывает жирные горизонтальные основы к пиксельной сетке для улучшения удобочитаемости. С помощью этой константы задается свойство cffHinting класса FontDescription. Используйте синтаксис CFFHinting.HORIZONTAL_STEM.

Примечание. Не рекомендуется для анимации.

flash.text.engine.FontDescription.cffHinting
NONE Хинтинг не применяется.noneString Хинтинг не применяется. Горизонтальные основы глифов не привязываются к пиксельной сетке. С помощью этой константы задается свойство cffHinting класса FontDescription. Этот параметр рекомендуется для анимации и для шрифтов большого размера. Используйте синтаксис CFFHinting.NONE. flash.text.engine.FontDescription.cffHinting
Kerning Класс Kerning является перечислением констант, используемых вместе с ElementFormat.kerning.Object Класс Kerning является перечислением констант, используемых вместе с ElementFormat.kerning. ElementFormat.kerningAUTO Служит для указания того, что кернинг включен за исключением тех случаев, когда он не применим в азиатской типографике.autoString Служит для указания того, что кернинг включен за исключением тех случаев, когда он не применим в азиатской типографике. Кернинг применяется между двумя символами, если ни один из них не принадлежит к кандзи, хирагана или катакана. OFF Указывает, что кернинг выключен.offString Указывает, что кернинг выключен. ON Указывает, что кернинг включен.onString Указывает, что кернинг включен. TextLineMirrorRegion Класс TextLineMirrorRegion представляет фрагмент текстовой строки, события которой зеркально отображаются в другом отправителе событий.Object Класс TextLineMirrorRegion представляет фрагмент текстовой строки, события которой зеркально отображаются в другом отправителе событий.

После завершения обычной отправки события для текстовой строки, если строка является допустимой и распространение события не остановлено, выполняется повторная отправка событий в зеркальные области строки.

Зеркалирование событий мыши является особым случаем. Поскольку зеркальные области в действительности не являются экранными объекты, для них имитируются события mouseOver и mouseOut. События rollOver и rollOut не имитируются. Все естественным образом возникающие события mouseOver, mouseOut, rollOver и rollOut (в отношении текстовой строки или дочернего элемента текстовой строки) игнорируются — их зеркалирование не выполняется.

Нельзя создать объект TextLineMirrorRegion непосредственно из кода ActionScript. При вызове функции new TextLineMirrorRegion(), выдается исключение. TextLineMirrorRegion создан и связан строка текста, когда та строка текста создана от объекта ContentElement с зеркальным набором события.

Класс TextLineMirrorRegion является конечным, его нельзя разбить на подклассы.

В этом примере показан блок текста с зеркальными областями, которые становятся красными при щелчке мыши. package { import flash.display.Sprite; import flash.text.engine.TextBlock; import flash.text.engine.TextLine; import flash.text.engine.TextElement; import flash.text.engine.ElementFormat; import flash.text.engine.FontDescription; import flash.text.engine.ContentElement; import flash.text.engine.GroupElement; import flash.text.engine.TextLineMirrorRegion; import flash.events.MouseEvent; import flash.events.EventDispatcher; import flash.ui.Mouse; public class TextLineMirrorRegionExample extends Sprite { var myEvent:EventDispatcher = new EventDispatcher(); var fontDescription:FontDescription = new FontDescription(); var textBlock:TextBlock = new TextBlock(); public function TextLineMirrorRegionExample():void { fontDescription.fontWeight = "bold"; var blackFormat:ElementFormat = new ElementFormat(); blackFormat.fontSize = 18; blackFormat.color = 0x000000; blackFormat.fontDescription = fontDescription; var textElement1 = new TextElement("Click on different parts of me to find the ", blackFormat); var textElement2 = new TextElement("mirror regions",blackFormat); var textElement3 = new TextElement(". If I am a mirror region, I'll ",blackFormat); var textElement4 = new TextElement("turn red",blackFormat); var textElement5 = new TextElement(".",blackFormat); myEvent.addEventListener("click", clickHandler); myEvent.addEventListener("mouseOut", mouseOutHandler); myEvent.addEventListener("mouseOver", mouseOverHandler); var groupVector:Vector.<ContentElement> = new Vector.<ContentElement>; groupVector.push(textElement1, textElement2, textElement3, textElement4, textElement5); var groupElement:GroupElement = new GroupElement(groupVector); textElement2.eventMirror=myEvent; textElement4.eventMirror=myEvent; textBlock.content = groupElement; createLines(textBlock); } private function clickHandler(event:MouseEvent):void { var redFormat:ElementFormat = new ElementFormat(); redFormat.color = 0xCC0000; redFormat.fontSize = 18; redFormat.fontDescription = fontDescription; var line:TextLine = event.target as TextLine; var region:TextLineMirrorRegion = line.getMirrorRegion(myEvent); region.element.elementFormat = redFormat; createLines(textBlock); } private function mouseOverHandler(event:MouseEvent):void { Mouse.cursor = "button"; } private function mouseOutHandler(event:MouseEvent):void { Mouse.cursor = "arrow"; } private function createLines(textBlock:TextBlock):void { var purgeLine:TextLine = textBlock.firstLine; while (purgeLine) { removeChild (purgeLine); purgeLine = purgeLine.nextLine; } var lineWidth:Number = 150; 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); } } } }
ContentElement.eventMirrorTextBlock.createTextLine()TextLine.mirrorRegionsbounds Границы зеркальной области относительно строки текста.flash.geom:Rectangle Границы зеркальной области относительно строки текста. element Объект ContentElement, на основе которого создается зеркальная область.flash.text.engine:ContentElementОбъект TextLine, к которому принадлежит этот элемент, является недействительным. IllegalOperationErrorflash.errors:IllegalOperationError Объект ContentElement, на основе которого создается зеркальная область. mirror Объект EventDispatcher, который зеркально отображает события, затрагивающие зеркальную область.flash.events:EventDispatcher Объект EventDispatcher, который зеркально отображает события, затрагивающие зеркальную область. Он включает события мыши, которые происходят в зеркальной области, а также все остальные события, нацеленные на текстовую строку. nextRegion Следующий объект TextLineMirrorRegion в группе, производной от текстового элемента, или null, если текущая область является последней зеркальной областью в наборе.flash.text.engine:TextLineMirrorRegion Следующий объект TextLineMirrorRegion в группе, производной от текстового элемента, или null, если текущая область является последней зеркальной областью в наборе. Может быть на той же или на другой строке текста. previousRegion Предыдущий объект TextLineMirrorRegion в группе, производной от текстового элемента, или null, если текущая область является первой зеркальной областью в наборе.flash.text.engine:TextLineMirrorRegion Предыдущий объект TextLineMirrorRegion в группе, производной от текстового элемента, или null, если текущая область является первой зеркальной областью в наборе. Может быть на той же или на другой строке текста. textLine Объект TextLine, содержащий эту зеркальную область.flash.text.engine:TextLine Объект TextLine, содержащий эту зеркальную область.
LineJustification Класс LineJustification является перечислением значений констант, с помощью которых задается свойство lineJustfication класса TextJustifier.Object Класс LineJustification является перечислением значений констант, с помощью которых задается свойство lineJustfication класса TextJustifier. TextJustifier.lineJustificationALL_BUT_LAST Выполняется выключка всех строк, кроме последней.allButLastString Выполняется выключка всех строк, кроме последней. ALL_INCLUDING_LAST Выполняется выравнивание по формату всех строк.allIncludingLastString Выполняется выравнивание по формату всех строк. UNJUSTIFIED Выключка строк не выполняется.unjustifiedString Выключка строк не выполняется. SpaceJustifier Класс SpaceJustifier представляет свойства, управляющие параметрами выравнивания по ширине для строк текстового блока.flash.text.engine:TextJustifier Класс SpaceJustifier представляет свойства, управляющие параметрами выравнивания по ширине для строк текстового блока.

Используйте конструктор new SpaceJustifier(), чтобы создать объект SpaceJustifier, прежде чем определять его свойства. Если определить свойства объекта SpaceJustifier после его применения к TextBlock, объект TextBlock не становится недействительным.

В следующем примере показано назначение интервалов между буквами и выравнивание текстового блока по ширине, кроме последней строки. 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.SpaceJustifier; import flash.text.engine.LineJustification; public class SpaceJustifierExample extends Sprite { public function SpaceJustifierExample():void { var str:String = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, " + "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut " + "enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut " + "aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit " + "in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur " + "sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt " + "mollit anim id est laborum."; var format:ElementFormat = new ElementFormat(null, 12, 0xCC0000); var textElement:TextElement = new TextElement(str, format); var spaceJustifier:SpaceJustifier = new SpaceJustifier("en", LineJustification.ALL_BUT_LAST); spaceJustifier.letterSpacing = true; var textBlock:TextBlock = new TextBlock(); textBlock.content = textElement; textBlock.textJustifier = spaceJustifier; createLines(textBlock); } private function createLines(textBlock:TextBlock):void { var yPos = 20; var textLine:TextLine = textBlock.createTextLine (null, 150); while (textLine) { addChild(textLine); textLine.x = 15; yPos += textLine.textHeight+2; textLine.y = yPos; textLine = textBlock.createTextLine(textLine, 150); } } } }
LineJustificationTextBlock.textJustifierTextJustifierSpaceJustifier Создает объект SpaceJustifier.Локаль locale имеет значение null или значение, являющееся слишком коротким, чтобы быть действительным. ArgumentErrorArgumentErrorЗаданная локаль lineJustification не является членом LineJustification. ArgumentErrorArgumentErrorlocaleStringenЛокаль, определяющая правила выравнивания. Значение по умолчанию равно en. lineJustificationStringunjustifiedТип выравнивания строк в абзаце. Используйте константы LineJustification для этого свойства. Значение по умолчанию равно LineJustification.UNJUSTIFIED. letterSpacingBooleanfalseУказывает, учитывать ли межбуквенные интервалы при выравнивании по ширине. Значение по умолчанию false. Создает объект SpaceJustifier. Класс LineJustification содержит константы для задания типов выравнивания строк по ширине, которые можно применить. LineJustificationclone Создает клонированную копию объекта SpaceJustifier.Копия объекта SpaceJustifier. flash.text.engine:TextJustifier Создает клонированную копию объекта SpaceJustifier. letterSpacing Указывает, учитывать ли межбуквенные интервалы при выравнивании по ширине.Boolean Указывает, учитывать ли межбуквенные интервалы при выравнивании по ширине.

Значение по умолчанию false

maximumSpacing Определяет максимальный интервал (как коэффициент ширины обычного пробела) между словами для использования во время выключки.NumberЗадано значение value меньше optimumSpacing. ArgumentErrorArgumentError Определяет максимальный интервал (как коэффициент ширины обычного пробела) между словами для использования во время выключки. Если letterSpacing имеет значение true, межбуквенные интервалы будут использоваться после того, как интервалы между словами достигнут максимума. Если letterSpacing имеет значение false, пробелы между словами будут расширяться без учета ограничений.

По умолчанию используется значение 1.5

minimumSpacing Определяет минимальный интервал (как коэффициент ширины обычного пробела) между словами для использования во время выключки.NumberЗадано значение value меньше нуля или больше optimumSpacing. ArgumentErrorArgumentError Определяет минимальный интервал (как коэффициент ширины обычного пробела) между словами для использования во время выключки.

По умолчанию используется значение 0.5

optimumSpacing Определяет оптимальный интервал (как коэффициент ширины обычного пробела) между словами для использования во время выключки.NumberЗадано значение value меньше minimumSpacing или больше maximumSpacing. ArgumentErrorArgumentError Определяет оптимальный интервал (как коэффициент ширины обычного пробела) между словами для использования во время выключки.

По умолчанию используется значение 1.0