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

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

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

Чтобы упростить кодирование интерактивного поведения, текстовый процессор генерирует дополнительные события mouseOver и mouseOut для зеркальных областей по мере перехода мыши от одного зеркала строки к другому.

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

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

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

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

См. также

ContentElement.eventMirror
TextBlock.createTextLine()
TextLine.mirrorRegions


Общедоступные свойства
 СвойствоОпределено
  bounds : Rectangle
[только для чтения] Границы зеркальной области относительно строки текста.
TextLineMirrorRegion
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  element : ContentElement
[только для чтения] Объект ContentElement, на основе которого создается зеркальная область.
TextLineMirrorRegion
  mirror : EventDispatcher
[только для чтения] Объект EventDispatcher, который зеркально отображает события, затрагивающие зеркальную область.
TextLineMirrorRegion
  nextRegion : TextLineMirrorRegion
[только для чтения] Следующий объект TextLineMirrorRegion в группе, производной от текстового элемента, или "null", если текущая область является последней зеркальной областью в наборе.
TextLineMirrorRegion
  previousRegion : TextLineMirrorRegion
[только для чтения] Предыдущий объект TextLineMirrorRegion в группе, производной от текстового элемента, или "null", если текущая область является первой зеркальной областью в наборе.
TextLineMirrorRegion
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
  textLine : TextLine
[только для чтения] Объект TextLine, содержащий эту зеркальную область.
TextLineMirrorRegion
Общедоступные методы
 МетодОпределено
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Сведения о свойстве
boundsсвойство
bounds:Rectangle  [только для чтения]

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

Границы зеркальной области относительно строки текста.


Реализация
    public function get bounds():Rectangle
elementсвойство 
element:ContentElement  [только для чтения]

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

Объект ContentElement, на основе которого создается зеркальная область.


Реализация
    public function get element():ContentElement

Выдает
IllegalOperationError — Объект TextLine, к которому принадлежит этот элемент, является недействительным.
mirrorсвойство 
mirror:EventDispatcher  [только для чтения]

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

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


Реализация
    public function get mirror():EventDispatcher
nextRegionсвойство 
nextRegion:TextLineMirrorRegion  [только для чтения]

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

Следующий объект TextLineMirrorRegion в группе, производной от текстового элемента, или null, если текущая область является последней зеркальной областью в наборе. Может быть на той же или на другой строке текста.


Реализация
    public function get nextRegion():TextLineMirrorRegion
previousRegionсвойство 
previousRegion:TextLineMirrorRegion  [только для чтения]

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

Предыдущий объект TextLineMirrorRegion в группе, производной от текстового элемента, или null, если текущая область является первой зеркальной областью в наборе. Может быть на той же или на другой строке текста.


Реализация
    public function get previousRegion():TextLineMirrorRegion
textLineсвойство 
textLine:TextLine  [только для чтения]

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

Объект TextLine, содержащий эту зеркальную область.


Реализация
    public function get textLine():TextLine
Примеры Как пользоваться примерами
TextLineMirrorRegionExample.as

В этом примере показан блок текста с зеркальными областями, которые становятся красными при щелчке мыши.

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);
            }
        }
    }
}