| 套件 | 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
隱藏繼承公用屬性
顯示繼承公用屬性