套件 | flashx.textLayout.events |
類別 | public class FlowOperationEvent |
繼承 | FlowOperationEvent Event Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
在執行任何作業之前,TextFlow 物件會傳送 type
屬性設定為 FlowOperationEvent.FLOW_OPERATION_BEGIN 的 FlowOperationEvent。
您可以核取 operation
屬性,判斷即將開始的作業類型。FLOW_OPERATION_BEGIN 類型的事件是可以取消的,也就是說,如果您決定作業不應該繼續進行,您可以呼叫 Event.PreventDefault()
以取消作業。如果您取消作業,就不會執行作業且不會傳送 FLOW_OPERATION_END 事件。您也可以選擇在觸發事件的作業完成前,回呼 EditManager 以執行其他作業。如果您這樣做,則在事件處理常式中所起始的作業,會透過觸發事件的作業還原為單一作業。
如果您允許作業繼續進行,TextFlow 會在作業完成時,傳送 type
屬性設定為 FlowOperationEvent.FLOW_OPERATION_END
的 FlowOperationEvent。此事件在 Flash Player 擲出可能因為作業結果而發生的任何錯誤之前傳送。這讓您在 Flash Player 擲出錯誤之前,有處理錯誤的機會。您可以透過該事件的 error
屬性存取錯誤。如果您選擇在事件處理常式中處理錯誤,您可以呼叫 Event.preventDefault()
以取消 FLOW_OPERATION_END 事件,避免 Flash Player 擲出錯誤。您也可以選擇回呼 EditManager 以執行額外的作業。如果您這樣做,產生的作業會還原為觸發事件作業的個體。
相關 API 元素
屬性 | 定義自 | ||
---|---|---|---|
bubbles : Boolean [唯讀]
指出事件是否為反昇事件。 | Event | ||
cancelable : Boolean [唯讀]
指出是否可避免與事件相關聯的行為指令。 | Event | ||
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
currentTarget : Object [唯讀]
正主動使用事件偵聽程式處理 Event 物件的物件。 | Event | ||
error : Error
在作業期間擲出的錯誤 (若錯誤存在)。 | FlowOperationEvent | ||
eventPhase : uint [唯讀]
事件流程中的目前階段。 | Event | ||
level : int
多個作業經由巢狀結構可合併為複合作業。 | FlowOperationEvent | ||
operation : FlowOperation
即將開始或剛結束的作業。 | FlowOperationEvent | ||
target : Object [唯讀]
事件目標。 | Event | ||
type : String [唯讀]
事件類型。 | Event |
方法 | 定義自 | ||
---|---|---|---|
FlowOperationEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, operation:FlowOperation = null, level:int = 0, error:Error = null) 建立包含流程作業資訊的事件物件。 | FlowOperationEvent | ||
複製 Event 子類別的實體。 | Event | ||
公用程式函數,可用來實作自訂 ActionScript 3.0 Event 類別中的 toString() 方法。 | Event | ||
指出物件是否有已定義的指定屬性。 | Object | ||
檢查是否已經對事件呼叫 preventDefault() 方法。 | Event | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
如果可以取消事件的預設行為指令,則取消該行為指令。 | Event | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
避免處理事件流程中,目前節點以及任何後續節點中的任何事件偵聽程式。 | Event | ||
避免處理接續在事件流程中的目前節點之後,後續節點中的任何事件偵聽程式。 | Event | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
傳回包含 Event 物件所有屬性的字串。 | Event | ||
會傳回指定之物件的基本值。 | Object |
常數 | 定義自 | ||
---|---|---|---|
FLOW_OPERATION_BEGIN : String = "flowOperationBegin" [靜態]
定義 flowOperationBegin 事件物件的 type 屬性值。 | FlowOperationEvent | ||
FLOW_OPERATION_COMPLETE : String = "flowOperationComplete" [靜態]
定義 flowOperationComplete 事件物件的 type 屬性值。 | FlowOperationEvent | ||
FLOW_OPERATION_END : String = "flowOperationEnd" [靜態]
定義 flowOperationEnd 事件物件的 type 屬性值。 | FlowOperationEvent |
error | 屬性 |
level | 屬性 |
operation | 屬性 |
operation:FlowOperation
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
即將開始或剛結束的作業。
實作
public function get operation():FlowOperation
public function set operation(value:FlowOperation):void
相關 API 元素
FlowOperationEvent | () | 建構函式 |
public function FlowOperationEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, operation:FlowOperation = null, level:int = 0, error:Error = null)
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
建立包含流程作業資訊的事件物件。
參數type:String — 事件類型。事件偵聽程式可以透過繼承的 type 屬性來存取此資訊。有兩種類型:FlowOperationEvent.FLOW_OPERATION_BEGIN ;FlowOperationEvent.FLOW_OPERATION_END 。
| |
bubbles:Boolean (default = false ) — 指示事件是否為反昇事件。此事件不反昇。
| |
cancelable:Boolean (default = false ) — 指出是否可避免與事件相關聯的行為指令。您可以在事件處理常式函數中,呼叫 Event.preventDefault() 方法以取消此事件。
| |
operation:FlowOperation (default = null ) — 即將開始或剛結束的 FlowOperation。
| |
level:int (default = 0 ) — 在作業期間產生的任何錯誤。
| |
error:Error (default = null )
|
FLOW_OPERATION_BEGIN | 常數 |
public static const FLOW_OPERATION_BEGIN:String = "flowOperationBegin"
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
定義 flowOperationBegin
事件物件的 type
屬性值。在作業執行前傳送。取消此事件將阻止作業。
FLOW_OPERATION_COMPLETE | 常數 |
public static const FLOW_OPERATION_COMPLETE:String = "flowOperationComplete"
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
定義 flowOperationComplete
事件物件的 type
屬性值。完成所有作業 (包括擱置與複合作業)、完成撰寫且捲動顯示之後進行傳送。
FLOW_OPERATION_END | 常數 |
public static const FLOW_OPERATION_END:String = "flowOperationEnd"
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
定義 flowOperationEnd
事件物件的 type
屬性值。在作業完成後傳送。任何錯誤都儲存在 OperationEvent.error
。如果有錯誤,取消此事件會阻止重新擲出錯誤。一般而言,所有錯誤都可能是嚴重的。
在此時 (執行作業之後) 變更作業可能失敗。
這個範例會顯示如何建立一個事件處理程式,用於偵聽文字方向操作的開始與結束。兩個主要步驟是在文字流排上呼叫 addEventListener()
方法,以及建立事件處理常式函數。
已經為 TextFlow 實體呼叫 addEventListener()
。您可以分別使用這個簡易字串 "flowOperationBegin"
或 "flowOperationEnd"
,但是最好是使用靜態常數 FlowOperationEvent.FLOW_OPERATION_BEGIN
或 FlowOperationEvent.FLOW_OPERATION_END
。
本範例中的事件處理常式函數稱為 opBeginHandler()
和 opEndHandler()
。 opBeginHandler()
方法會使用 trace()
函數來產生一種追蹤陳述式,用來指示已經開始貼上作業。opEndHandler()
方法也會使用 trace()
函數,不過只會在發生錯誤時產生追蹤陳述式。
package flashx.textLayout.events.examples { import flash.display.Sprite; import flashx.textLayout.compose.StandardFlowComposer; import flashx.textLayout.container.ContainerController; import flashx.textLayout.conversion.TextConverter; import flashx.textLayout.edit.EditManager; import flashx.textLayout.elements.TextFlow; import flashx.textLayout.events.FlowOperationEvent; import flashx.textLayout.operations.FlowOperation; import flashx.textLayout.operations.PasteOperation; import flashx.undo.UndoManager; public class FlowOperationEvent_example extends Sprite { private var inputContainer:Sprite; private var inputTextFlow:TextFlow; private var inputController:ContainerController; private var inputEditManager:EditManager; private var inputUndoManager:UndoManager; public function FlowOperationEvent_example() { var replaceText:String = "paste text here"; inputTextFlow = new TextFlow(); inputContainer = new Sprite(); inputContainer.x = 30; inputContainer.y = 100; this.stage.addChild( inputContainer ); inputController = new ContainerController(inputContainer, 225, 20); inputController.verticalScrollPolicy = flashx.textLayout.container.ScrollPolicy.OFF; inputTextFlow = TextConverter.importToFlow(replaceText, TextConverter.PLAIN_TEXT_FORMAT); inputTextFlow.flowComposer = new StandardFlowComposer(); inputTextFlow.flowComposer.addController(inputController); inputUndoManager = new UndoManager(); inputEditManager = new EditManager(inputUndoManager); inputTextFlow.interactionManager = inputEditManager; inputTextFlow.addEventListener(FlowOperationEvent.FLOW_OPERATION_BEGIN, opBeginHandler); inputTextFlow.addEventListener(FlowOperationEvent.FLOW_OPERATION_END, opEndHandler); inputTextFlow.flowComposer.updateAllControllers(); } private function opBeginHandler(evt:FlowOperationEvent):void { var flowOp:FlowOperation = evt.operation; if(flowOp is PasteOperation) { trace("You can cancel or modify the paste operation in this event handler."); } } private function opEndHandler(evt:FlowOperationEvent):void { var flowOp:FlowOperation = evt.operation; if(evt.error) { trace("You can handle the error here and call preventDefault()."); } } } }
Tue Jun 12 2018, 03:47 PM Z