包 | flashx.textLayout.events |
类 | public class FlowOperationEvent |
继承 | FlowOperationEvent Event Object |
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
在执行任何操作之前,TextFlow 对象调度 FlowOperationEvent(其 type
属性设置为 FlowOperationEvent.FLOW_OPERATION_BEGIN)。
通过检查 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()
方法,以及创建一个事件处理函数。
对 addEventListener()
的调用应用于 TextFlow 实例。可以使用简单的字符串“flowOperationBegin”
或“flowOperationEnd”
,但分别使用静态常量 FlowOperationEvent.FLOW_OPERATION_BEGIN
或 FlowOperationEvent.FLOW_OPERATION_END
更安全。
此示例中的事件处理函数被命名为 opBeginHandler()
和 opEndHandler()
。opBeginHandler()
方法使用 trace()
函数来生成一个 trace 语句,用于指示已启动一个粘贴操作。opEndHandler()
方法也使用 trace()
函数,但仅当发生错误时才生成 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, 11:04 AM Z