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

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

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

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

Зеркалирование событий мыши является особым случаем. Поскольку в зеркальных областях объекты в действительности не отображаются, для них имитируются события mouseOver и mouseOut. События rollOver и rollOut не имитируются. Все естественным образом возникающие события 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
Версии среды выполнения:  10, 1.5

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



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

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

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



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

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

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

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



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

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

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



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

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

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



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

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

Объект 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);
            }
        }
    }
}