Главная / Action Script 3
Пакетflash.text.engine
Классpublic final class GroupElement
НаследованиеGroupElement Inheritance ContentElement Inheritance Object

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

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

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

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

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

См. также

ContentElement
GraphicElement
TextBlock
TextElement
Добавление объектов GraphicElement и GroupElement


Общедоступные свойства
 СвойствоОпределено
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  elementCount : int
[только для чтения] Количество элементов в группе.
GroupElement
 InheritedelementFormat : ElementFormat
Объект ElementFormat, используемый для элемента.
ContentElement
 InheritedeventMirror : EventDispatcher
Объект EventDispatcher, получающий копии каждого события, вызванного для действительных текстовых строк, созданных на основе данного элемента содержимого.
ContentElement
 InheritedgroupElement : GroupElement
[только для чтения] Объект GroupElement, содержащий этот элемент, или "null", если это не группа.
ContentElement
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
 InheritedrawText : String
[только для чтения] Копия текста в элементе, включая символы U+FDEF.
ContentElement
 Inheritedtext : String
[только для чтения] Копия текста в элементе, за исключением символов U+FDEF, представляющих графические элементы в объекте String.
ContentElement
 InheritedtextBlock : TextBlock
[только для чтения] Объект TextBlock, которому принадлежит этот элемент.
ContentElement
 InheritedtextBlockBeginIndex : int
[только для чтения] Индекс в первого символа в этом элементе текстового блока.
ContentElement
 InheritedtextRotation : String
Поворот, который должен применяться к элементу, как к едином целому.
ContentElement
 InheriteduserData : *
Дает возможность автору связать произвольные данные с элементом.
ContentElement
Общедоступные методы
 МетодОпределено
  
GroupElement(elements:Vector.<ContentElement> = null, elementFormat:ElementFormat = null, eventMirror:EventDispatcher = null, textRotation:String = "rotate0")
Создает новый экземпляр GroupElement.
GroupElement
  
Возвращает элемент из группы.
GroupElement
  
Возвращает элемент, содержащий символ, заданный параметром charIndex.
GroupElement
  
Возвращает элемент, содержащий символ, заданный параметром элемента.
GroupElement
  
groupElements(beginIndex:int, endIndex:int):GroupElement
Заменяет диапазон элементов, который задается параметрами beginIndex и endIndex для нового GroupElement с этими элементами.
GroupElement
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
  
mergeTextElements(beginIndex:int, endIndex:int):TextElement
Смешивает текст из диапазона элементов, задаваемого параметрами beginIndex и endIndex в элементе, заданном beginIndex без изменения формата элемента.
GroupElement
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
  
replaceElements(beginIndex:int, endIndex:int, newElements:Vector.<ContentElement>):Vector.<ContentElement>
Заменяет диапазон элементов, заданный параметрами beginIndex и endIndex, содержанием параметра newElements.
GroupElement
  
Задает элементы в группе для содержимого вектора.
GroupElement
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
  
splitTextElement(elementIndex:int, splitIndex:int):TextElement
Разбивает позицию TextElement в группе на новый TextElement, который вставляется в группу, следующую за указанным элементом TextElement.
GroupElement
 Inherited
Возвращает строковое представление заданного объекта.
Object
  
Разгруппировывает элементы во вложенном GroupElement, который задается с помощью groupIndex внутри внешнего GroupElement.
GroupElement
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Общедоступные константы
 Константа Определено
 InheritedGRAPHIC_ELEMENT : uint = 0xFDEF
[статические] Указывает на присутствие в тексте графического элемента.
ContentElement
Сведения о свойстве
elementCountсвойство
elementCount:int  [только для чтения]

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

Количество элементов в группе.



Реализация
    public function get elementCount():int
Сведения о конструкторе
GroupElement()Конструктор
public function GroupElement(elements:Vector.<ContentElement> = null, elementFormat:ElementFormat = null, eventMirror:EventDispatcher = null, textRotation:String = "rotate0")

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

Создает новый экземпляр GroupElement.

Параметры
elements:Vector.<ContentElement> (default = null) — Вектор объектов ContentElement в GroupElement. Вектор может быть пуст. Значение по умолчанию равно null.
 
elementFormat:ElementFormat (default = null) — Формат элемента для группы. Значение по умолчанию равно null. Формат применяется к пересечениям элементов в группе, эти элементы не наследуют формат.
 
eventMirror:EventDispatcher (default = null) — Объект EventDispatcher, получающий копии каждого события, вызванного для текстовых строк, созданных на основе данного элемента содержимого. Значение по умолчанию равно null.
 
textRotation:String (default = "rotate0") — При вращении элемент был использован в качестве единого целого. Используйте константы TextRotation для этого свойства. Значение по умолчанию равно TextRotation.ROTATE_0.

Выдает
ArgumentError — Заданный element содержит элементы со значением null.
 
ArgumentError — Заданный element содержит элемент, не являющийся известным подклассом ContentElement.
 
ArgumentError — Заданный element содержит элементы, заданные в качестве значения content объекта TextBlock.
 
ArgumentError — Заданный element содержит элементы, которые уже являются членами группы, либо встречаются более раза в elements.

См. также

Сведения о методе
getElementAt()метод
public function getElementAt(index:int):ContentElement

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

Возвращает элемент из группы.

Параметры

index:int — Индекс получаемого элемента.

Возвращает
ContentElement

Выдает
RangeError — Если index вне диапазона.
getElementAtCharIndex()метод 
public function getElementAtCharIndex(charIndex:int):ContentElement

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

Возвращает элемент, содержащий символ, заданный параметром charIndex.

Параметры

charIndex:int — Отсчитываемое от нуля значение символа, чей элемент нужно найти. Значение 0 соответствует первому символу в группе, ноне первому символу TextBlock.

Возвращает
ContentElement — Элемент, содержащий символ с индексом charIndex

Выдает
RangeError — Если charIndex вне диапазона 0 — rawText.length.
getElementIndex()метод 
public function getElementIndex(element:ContentElement):int

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

Возвращает элемент, содержащий символ, заданный параметром элемента.

Параметры

element:ContentElement — Элемент в группе, чей индекс необходимо возвратить.

Возвращает
int — Индекс элемента, заданный свойством element или -1, если элемент вне группы.
groupElements()метод 
public function groupElements(beginIndex:int, endIndex:int):GroupElement

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

Заменяет диапазон элементов, который задается параметрами beginIndex и endIndex для нового GroupElement с этими элементами. Согласно проекту, заменяются элементы от beginIndex до endIndex-1.

Параметры

beginIndex:int — Отсчитываемое от нуля значение индекса для начального положения диапазона группировки.
 
endIndex:int — Отсчитываемое от нуля значение индекса, следующее за конечным положением диапазона группировки.

Возвращает
GroupElement — Новая группа.

Выдает
RangeError — Если индексы beginIndex или endIndex находятся вне диапазона.
mergeTextElements()метод 
public function mergeTextElements(beginIndex:int, endIndex:int):TextElement

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

Смешивает текст из диапазона элементов, задаваемого параметрами beginIndex и endIndex в элементе, заданном beginIndex без изменения формата элемента. Согласно проекту, сливаются элементы от beginIndex до endIndex-1. После смешивания текста элементы от beginIndex+1 до endIndex-1 удаляются из группы и для них отменяются родители, значение null присваивается их свойству group.

Параметры

beginIndex:int — Отсчитываемое от нуля значение индекса для начального положения диапазона замены.
 
endIndex:int — Отсчитываемое от нуля значение индекса, следующе за конечным положением диапазона слияния.

Возвращает
TextElement — Первый текстовый элемент в диапазоне, теперь содержащим весь текст диапазона.

Выдает
RangeError — Если индексы beginIndex или endIndex находятся вне диапазона.
 
ArgumentError — Если какой-либо элемент в диапазоне не является объектом TextElement.

См. также

replaceElements()метод 
public function replaceElements(beginIndex:int, endIndex:int, newElements:Vector.<ContentElement>):Vector.<ContentElement>

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

Заменяет диапазон элементов, заданный параметрами beginIndex и endIndex, содержанием параметра newElements. Согласно проекту, заменяются элементы от beginIndex до endIndex-1.

Для создания элементов передайте null для newElements.

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

Для добавления элемента передайте elementCount для beginIndex и endIndex.

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

Параметры

beginIndex:int — Отсчитываемое от нуля значение индекса для начального положения диапазона замены.
 
endIndex:int — Отсчитываемое от нуля значение индекса, следующее за конечным положением диапазона замены.
 
newElements:Vector.<ContentElement> — Элементы для замены заданного диапазона элементов.

Возвращает
Vector.<ContentElement> — Вектор, содержащий замещенные элементы.

Выдает
RangeError — Заданный параметр beginIndex или endIndex находится за пределами диапазона.
 
ArgumentError — Заданное свойство newElements содержит элементы со значением null.
 
ArgumentError — Заданное свойство newElements содержит элементы this.
 
ArgumentError — Заданное свойство newElements содержит элементы, которые не являются известными подклассами ContentElement.
 
ArgumentError — Заданное свойство newElements содержит элементы, заданные в качестве значения свойства content объекта TextBlock.
 
ArgumentError — Заданное свойство newElements содержит элементы, которые уже являются членами группы, либо встречаются более раза в elements.
 
ArgumentError — Если операция должна привести к вложенным вращениям внутри элемента GroupElement.
setElements()метод 
public function setElements(value:Vector.<ContentElement>):void

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

Задает элементы в группе для содержимого вектора.

Параметры

value:Vector.<ContentElement>


Выдает
ArgumentError — Заданное значение содержит элементы null.
 
ArgumentError — Заданное значение содержит элементы this.
 
ArgumentError — Заданное значение содержит элементы, которые не являются известными подклассами ContentElement.
 
ArgumentError — Заданное значение содержит элементы в виде content, которые не являются известными подклассами TextBlock.
 
ArgumentError — Заданное значение содержит элементы, которые уже являются членами группы, либо встречаются более раза в значении.
 
ArgumentError — Если операция должна привести к вложенным вращениям внутри элемента GroupElement.
splitTextElement()метод 
public function splitTextElement(elementIndex:int, splitIndex:int):TextElement

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

Разбивает позицию TextElement в группе на новый TextElement, который вставляется в группу, следующую за указанным элементом TextElement.

Параметры

elementIndex:int — Отсчитываемый от нуля индекс положения элемента в группе.
 
splitIndex:int — Отсчитываемый от нуля индекс положения элемента в TextElement, где будет производиться разбиение. Заданный символ — это первый символ нового TextElement.

Возвращает
TextElement — Новый элемент, содержащий последнюю части исходного текстового элемента.

Выдает
RangeError — Если индексы beginIndex или charIndex лежат вне диапазона.
 
ArgumentError — Если элемент по индексу elementIndex не является TextElement.

См. также

ungroupElements()метод 
public function ungroupElements(groupIndex:int):void

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

Разгруппировывает элементы во вложенном GroupElement, который задается с помощью groupIndex внутри внешнего GroupElement. После выполнения операции разгрупированные элементы заменяют вложенный GroupElement, который становится элементом без родителей со значением null свойства group.

Параметры

groupIndex:int — Отсчитываемый от нуля индекс для положения разбиваемой группы.


Выдает
RangeError — Если groupIndex вне диапазона.
 
ArgumentError — Если элемент по индексу groupIndex не является объектом GroupElement.
Примеры Как пользоваться примерами
GroupElementExample.as

В примере создается красная рамка в виде объекта 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);
            }
        }
    }    
}