flash.text.engine
public final class TextLineMirrorRegion
继承TextLineMirrorRegion Inheritance Object

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

TextLineMirrorRegion 类表示其中的事件镜像到另一个事件调度程序的文本行部分。

在针对文本行的正常事件调度完成后,如果该文本行有效且事件传播已停止,则将事件重新调度到该文本行的镜像区域。

镜像鼠标事件是一个特例。由于镜像区域并不实际显示对象,因此将为这些区域模拟 mouseOvermouseOut 事件。并不模拟 rollOverrollOut 事件。忽略所有自然发生的 mouseOvermouseOutrollOverrollOut 事件(无论这些事件将文本行作为目标还是将文本行的子项作为目标),不会镜像它们。

无法从 ActionScript 代码直接创建 TextLineMirrorRegion 对象。如果调用 new TextLineMirrorRegion(),则会引发异常。当您向 ContentElement 对象分配事件镜像时将创建 TextLineMirrorRegion。

TextLineMirrorRegion 类是最终类;无法从其派生子类。

查看示例

另请参见

ContentElement.eventMirror
TextBlock.createTextLine()
TextLine.mirrorRegions


公共属性
 属性定义方
  bounds : Rectangle
[只读 (read-only)] 相对文本行的镜像区域范围。
TextLineMirrorRegion
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  element : ContentElement
[只读 (read-only)] 从中派生该镜像区域的 ContentElement 对象。
TextLineMirrorRegion
  mirror : EventDispatcher
[只读 (read-only)] 向其镜像影响镜像区域的事件的 EventDispatcher 对象。
TextLineMirrorRegion
  nextRegion : TextLineMirrorRegion
[只读 (read-only)] 集合中从文本元素派生的下一个 TextLineMirrorRegion,如果当前区域是集合中的最后一个镜像区域,则为 null。
TextLineMirrorRegion
  previousRegion : TextLineMirrorRegion
[只读 (read-only)] 集合中从文本元素派生的上一个 TextLineMirrorRegion,如果当前区域是集合中的第一个镜像区域,则为 null。
TextLineMirrorRegion
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
  textLine : TextLine
[只读 (read-only)] 包含此镜像区域的 TextLine。
TextLineMirrorRegion
公共方法
 方法定义方
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
属性详细信息
bounds属性
bounds:Rectangle  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

相对文本行的镜像区域范围。



实现
    public function get bounds():Rectangle
element属性 
element:ContentElement  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

从中派生该镜像区域的 ContentElement 对象。



实现
    public function get element():ContentElement

引发
IllegalOperationError — 此元素所属的 TextLine 无效。
mirror属性 
mirror:EventDispatcher  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

向其镜像影响镜像区域的事件的 EventDispatcher 对象。这包括专门在镜像区域中发生的鼠标事件和将文本行作为目标的所有其他事件。



实现
    public function get mirror():EventDispatcher
nextRegion属性 
nextRegion:TextLineMirrorRegion  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

集合中从文本元素派生的下一个 TextLineMirrorRegion,如果当前区域是集合中的最后一个镜像区域,则为 null。可以在同一行上,也可以在其他文本行上。



实现
    public function get nextRegion():TextLineMirrorRegion
previousRegion属性 
previousRegion:TextLineMirrorRegion  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

集合中从文本元素派生的上一个 TextLineMirrorRegion,如果当前区域是集合中的第一个镜像区域,则为 null。可以在同一行上,也可以在其他文本行上。



实现
    public function get previousRegion():TextLineMirrorRegion
textLine属性 
textLine:TextLine  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 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);
            }
        }
    }
}