包 | flashx.textLayout.events |
类 | public class FlowElementMouseEvent |
继承 | FlowElementMouseEvent Event Object |
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
可以将事件侦听器添加到链接元素以侦听该类型的事件。如果选择通过调用 Event.preventDefault()
取消事件,则不会发生与该事件关联的默认行为。
如果您选择不向链接元素添加事件侦听器,或者您的事件侦听器函数不取消此行为,则会再次调度该事件,但是这一次是由链接元素的关联 TextFlow 实例而不是由链接元素本身调度。这样即提供了第二次机会,允许使用附加到 TextFlow 的事件侦听器侦听该事件。
只有当无法编辑文本或者在鼠标动作的同时按下控制键时,才会调度 FlowElementMouseEvent。
只有当无法编辑文本或按下控制键时,才会调度下列六种事件类型:
-
FlowElementMouseEvent.CLICK
-
FlowElementMouseEvent.MOUSE_DOWN
-
FlowElementMouseEvent.MOUSE_UP
-
FlowElementMouseEvent.MOUSE_MOVE
-
FlowElementMouseEvent.ROLL_OVER
-
FlowElementMouseEvent.ROLL_OUT
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
bubbles : Boolean [只读]
表示事件是否为冒泡事件。 | Event | ||
cancelable : Boolean [只读]
表示是否可以阻止与事件相关联的行为。 | Event | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
currentTarget : Object [只读]
当前正在使用某个事件侦听器处理 Event 对象的对象。 | Event | ||
eventPhase : uint [只读]
事件流中的当前阶段。 | Event | ||
flowElement : FlowElement
调度了事件的 FlowElement。 | FlowElementMouseEvent | ||
originalEvent : MouseEvent
由鼠标动作生成的原始鼠标事件。 | FlowElementMouseEvent | ||
target : Object [只读]
事件目标。 | Event | ||
type : String [只读]
事件的类型。 | Event |
方法 | 由以下参数定义 | ||
---|---|---|---|
FlowElementMouseEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = true, flowElement:FlowElement = null, originalEvent:MouseEvent = null)
创建事件对象,其中包含有关鼠标动作的信息。 | FlowElementMouseEvent | ||
复制 Event 子类的实例。 | Event | ||
用于在自定义 ActionScript 3.0 Event 类中实现 toString() 方法的实用程序函数。 | Event | ||
表示对象是否已经定义了指定的属性。 | Object | ||
检查是否已对事件调用 preventDefault() 方法。 | Event | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
如果可以取消事件的默认行为,则取消该行为。 | Event | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
设置循环操作动态属性的可用性。 | Object | ||
防止对事件流中当前节点中和所有后续节点中的事件侦听器进行处理。 | Event | ||
防止对事件流中当前节点的后续节点中的所有事件侦听器进行处理。 | Event | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回一个字符串,其中包含 Event 对象的所有属性。 | Event | ||
返回指定对象的原始值。 | Object |
常量 | 由以下参数定义 | ||
---|---|---|---|
CLICK : String = "click" [静态]
定义 click 事件对象的 type 属性值。 | FlowElementMouseEvent | ||
MOUSE_DOWN : String = "mouseDown" [静态]
定义 mouseDown 事件对象的 type 属性值。 | FlowElementMouseEvent | ||
MOUSE_MOVE : String = "mouseMove" [静态]
定义 mouseMove 事件对象的 type 属性值。 | FlowElementMouseEvent | ||
MOUSE_UP : String = "mouseUp" [静态]
定义 mouseUp 事件对象的 type 属性值。 | FlowElementMouseEvent | ||
ROLL_OUT : String = "rollOut" [静态]
定义 rollOut 事件对象的 type 属性值。 | FlowElementMouseEvent | ||
ROLL_OVER : String = "rollOver" [静态]
定义 rollOver 事件对象的 type 属性值。 | FlowElementMouseEvent |
flowElement | 属性 |
flowElement:FlowElement
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
调度了事件的 FlowElement。
实现
public function get flowElement():FlowElement
public function set flowElement(value:FlowElement):void
相关 API 元素
originalEvent | 属性 |
originalEvent:MouseEvent
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
由鼠标动作生成的原始鼠标事件。此属性可以是下列值之一:
MouseEvent.CLICK
MouseEvent.MOUSE_DOWN
MouseEvent.MOUSE_UP
MouseEvent.MOUSE_MOVE
MouseEvent.MOUSE_OVER
MouseEvent.MOUSE_OUT
在大多数情况下,原始事件与链接元素调度的事件相匹配。这些事件与 click
、mouseDown
、mouseOut
和 mouseOver
事件匹配。但是,在两种情况下原始事件由链接元素转换为相关事件。如果链接元素检测到 mouseOver
事件,则会调度 rollOver
事件。同样,如果链接元素检测到 mouseOut
事件,则会调度 rollOut
事件。通常,事件目标和鼠标坐标与包含链接元素的 TextLine 实例相关。
实现
public function get originalEvent():MouseEvent
public function set originalEvent(value:MouseEvent):void
相关 API 元素
FlowElementMouseEvent | () | 构造函数 |
public function FlowElementMouseEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = true, flowElement:FlowElement = null, originalEvent:MouseEvent = null)
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
创建事件对象,其中包含有关鼠标动作的信息。将 Event 对象作为参数传递给事件侦听器。如果您想要手动调度一个事件,可使用构造函数。无需使用构造函数侦听由 FlowElement 生成的 FlowElementMouseEvent 对象。
参数type:String — 事件的类型。事件侦听器可以通过继承的 type 属性访问此信息。存在六个类型:FlowElementMouseEvent.CLICK 、FlowElementMouseEvent.MOUSE_DOWN 、FlowElementMouseEvent.MOUSE_MOVE 、FlowElementMouseEvent.MOUSE_UP 、FlowElementMouseEvent.ROLL_OVER 和 FlowElementMouseEvent.ROLL_OUT 。
| |
bubbles:Boolean (default = false ) — 确定 Event 对象是否参与事件流的冒泡阶段。FlowElementMouseEvent 对象不会冒泡。
| |
cancelable:Boolean (default = true ) — 确定是否可以取消 Event 对象。事件侦听器可以通过继承的 cancelable 属性访问此信息。可以取消 FlowElementMouseEvent 对象。可通过调用事件侦听器中的 preventDefault() 方法取消与该事件关联的默认行为。
| |
flowElement:FlowElement (default = null ) — FlowElement 实例,当前是与该事件关联的 LinkElement。事件侦听器可以通过 flowElement 属性访问此信息。
| |
originalEvent:MouseEvent (default = null ) — flowElement 上发生的原始鼠标事件。事件侦听器可以通过 originalEvent 属性访问此信息。
|
CLICK | 常量 |
public static const CLICK:String = "click"
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
定义 click
事件对象的 type
属性值。
相关 API 元素
MOUSE_DOWN | 常量 |
public static const MOUSE_DOWN:String = "mouseDown"
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
定义 mouseDown
事件对象的 type
属性值。
相关 API 元素
MOUSE_MOVE | 常量 |
public static const MOUSE_MOVE:String = "mouseMove"
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
定义 mouseMove
事件对象的 type
属性值。
相关 API 元素
MOUSE_UP | 常量 |
public static const MOUSE_UP:String = "mouseUp"
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
定义 mouseUp
事件对象的 type
属性值。
相关 API 元素
ROLL_OUT | 常量 |
public static const ROLL_OUT:String = "rollOut"
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
定义 rollOut
事件对象的 type
属性值。
相关 API 元素
ROLL_OVER | 常量 |
public static const ROLL_OVER:String = "rollOver"
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
定义 rollOver
事件对象的 type
属性值。
相关 API 元素
此示例演示如何侦听可能在 LinkElement 实例上发生的鼠标事件:两个关键的步骤是针对每种事件类型调用 addEventListener(),以及创建一个事件处理函数。
对 addEventListener()
的调用应用于 LinkElement 实例。您可以使用简单的字符串,例如 "click"
或 "mouseDown"
,但是使用静态常量更安全。此示例使用了来自 MouseEvent 类的常量,因为在 FlowElementMouseEvent 类中没有静态常量。
该示例只包含一个事件处理函数,因为该代码对于所有事件都是相同的。通常,响应每种事件类型的代码会有所不同,此时对于每一 addEventListener()
调用使用不同的事件处理函数是更好的选择。
package flashx.textLayout.events.examples { import flash.display.Sprite; import flash.events.MouseEvent; import flashx.textLayout.container.ContainerController; import flashx.textLayout.elements.TextFlow; import flashx.textLayout.elements.ParagraphElement; import flashx.textLayout.elements.SpanElement; import flashx.textLayout.elements.LinkElement; import flashx.textLayout.events.FlowElementMouseEvent; import flashx.textLayout.formats.TextLayoutFormat; public class FlowElementMouseEvent_example extends Sprite { private var tf:TextFlow; public function FlowElementMouseEvent_example() { // define TextFlow tf = new TextFlow(); // define link element var linkPar:ParagraphElement = new ParagraphElement(); var linkEl:LinkElement = new LinkElement(); linkEl.href = "http://www.adobe.com/go/flashplayer"; linkEl.target = "_blank"; // when link is clicked, open a new browser window var span1:SpanElement = new SpanElement(); // for text associated with link span1.text = "Get Flash Player"; linkEl.addChild(span1); // define paragraph element for name of events dispatched var textPar:ParagraphElement = new ParagraphElement(); var span2:SpanElement = new SpanElement(); span2.text ="Three most recent events:"; // add span (text) and link elements to the TextFlow linkPar.addChild(linkEl); // add LinkElement to first paragraph textPar.addChild(span2); // add header text to second paragraph tf.addChild(linkPar); // add paragraph with link to text flow tf.addChild(textPar); // add paragraph for events to text flow // add event listeners for all six FlowElementMouseEvent types linkEl.addEventListener(FlowElementMouseEvent.CLICK, linkHandler); linkEl.addEventListener(FlowElementMouseEvent.MOUSE_DOWN, linkHandler); linkEl.addEventListener(FlowElementMouseEvent.MOUSE_MOVE, linkHandler); linkEl.addEventListener(FlowElementMouseEvent.MOUSE_UP, linkHandler); linkEl.addEventListener(FlowElementMouseEvent.ROLL_OVER, linkHandler); linkEl.addEventListener(FlowElementMouseEvent.ROLL_OUT, linkHandler); // create text container for link and event listing text var linkContainer:Sprite = new Sprite(); linkContainer.x = 10; linkContainer.y = 10; var linkController:ContainerController = new ContainerController(linkContainer,200,80); var linkControllerFormat:TextLayoutFormat = new TextLayoutFormat(); linkControllerFormat.paddingTop = 3; linkController.format = linkControllerFormat; tf.flowComposer.addController(linkController); // Add linkContainer to Display List addChild(linkContainer); tf.flowComposer.updateAllControllers(); } // event handler function private function linkHandler(ev:FlowElementMouseEvent):void { var par:ParagraphElement = new ParagraphElement(); var span:SpanElement = new SpanElement(); span.text = ev.type; par.addChild(span); tf.replaceChildren(2,2,par); if (tf.numChildren > 5) { tf.removeChildAt(5); } tf.flowComposer.updateAllControllers(); } } }
Tue Jun 12 2018, 11:04 AM Z