套件 | flashx.textLayout.events |
類別 | public class FlowElementMouseEvent |
繼承 | FlowElementMouseEvent Event Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
您可以將事件偵聽程式增加到連結元素以偵聽此類型的事件。如果您選擇藉由呼叫 Event.preventDefault()
取消事件,則與事件相關聯的預設行為將不會發生。
如果您選擇不要將事件偵聽程式增加到連結元素,或者您的事件偵聽程式函數沒有取消行為,將會再度傳送事件,但這次是由連結元素相關聯的 TextFlow 實體傳送,而不是由連結元素本身傳送。這提供使用附加至 TextFlow 的事件偵聽程式偵聽此事件的第二次機會。
只有在無法編輯文字或在滑鼠活動的同時按下 Ctrl 鍵時,才會傳送 FlowElementMouseEvents。
只有在無法編輯文字或按下 Ctrl 鍵時,才會傳送下列 6 個事件類型:
-
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 屬性來存取此資訊。有 6 種類型:FlowElementMouseEvent.CLICK 、FlowElementMouseEvent.MOUSE_DOWN 、FlowElementMouseEvent.MOUSE_MOVE 、FlowElementMouseEvent.MOUSE_UP 、FlowElementMouseEvent.ROLL_OVER 及 FlowElementMouseEvent.ROLL_OUT 。
| |
bubbles:Boolean (default = false ) — 判斷事件物件是否參與事件流程的反昇階段。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 |
定義 type
屬性值 (click
事件物件)。
相關 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 |
定義 type
屬性值 (mouseUp
事件物件)。
相關 API 元素
ROLL_OUT | 常數 |
public static const ROLL_OUT:String = "rollOut"
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
定義 type
屬性值 (rollOut
事件物件)。
相關 API 元素
ROLL_OVER | 常數 |
public static const ROLL_OVER:String = "rollOver"
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
定義 type
屬性值 (rollOver
事件物件)。
相關 API 元素
此範例顯示如何偵聽可能在 LinkElement 實體中發生的滑鼠事件。兩個主要步驟是對每個事件類型呼叫 addEventListener(),以及建立事件處理常式函數。
已經為 LinkElement 實體呼叫 addEventListener()
。您可以使用簡單字串,例如,「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, 03:47 PM Z