八、 事件
1. 创建Event:
Event(type:String, bubbles:Boolean = false, cancelable:Boolean = false)
type : 事件的类型,如:click
bubbles : 是否可以冒泡
cancelable : 事件是否可以被取消,如果设置了 true, 则在 target/currentTarget 的事件监听中,可以调用event.stopImmediatePropagation()取消事件的传递
2. 将事件调度到事件流中
dispatchEvent() : 将事件调度到事件流中。事件目标是对其调用 dispatchEvent() 方法的 EventDispatcher 对象。
意思就是,谁调用了dispatchEvent,谁就是事件的目标对象,
在事件event对象传递到目标对象时,event对象会依次经过目标对象的所有的父容器,
事件流的过程:
捕获阶段:event对象传递方向: 父容器A --> 父容器B --> 父容器C --> 父容器.... event.eventPhase=1
目标阶段:event对象传递方向: 目标对象 event.eventPhase=2
冒泡阶段:event对象传递方向: 父容器C --> 父容器B --> 父容器A event.eventPhase=3
3. 在target/currentTarget的监听事件中,可以做以下操作:
event.stopImmediatePropagation()取消事件的传递 , 需要在创建Event时,设置cancelable为true才可以生效
event.preventDefault()取消事件的默认行为,例如,可以监听TextInput的键盘keyDown事件,然后在监听器中,调用preventDefault()方法,就可以阻止用户输入信息在输入框中的显示。
Event(type:String, bubbles:Boolean = false, cancelable:Boolean = false)
type : 事件的类型,如:click
bubbles : 是否可以冒泡
cancelable : 事件是否可以被取消,如果设置了 true, 则在 target/currentTarget 的事件监听中,可以调用event.stopImmediatePropagation()取消事件的传递
2. 将事件调度到事件流中
dispatchEvent() : 将事件调度到事件流中。事件目标是对其调用 dispatchEvent() 方法的 EventDispatcher 对象。
意思就是,谁调用了dispatchEvent,谁就是事件的目标对象,
在事件event对象传递到目标对象时,event对象会依次经过目标对象的所有的父容器,
事件流的过程:
捕获阶段:event对象传递方向: 父容器A --> 父容器B --> 父容器C --> 父容器.... event.eventPhase=1
目标阶段:event对象传递方向: 目标对象 event.eventPhase=2
冒泡阶段:event对象传递方向: 父容器C --> 父容器B --> 父容器A event.eventPhase=3
3. 在target/currentTarget的监听事件中,可以做以下操作:
event.stopImmediatePropagation()取消事件的传递 , 需要在创建Event时,设置cancelable为true才可以生效
event.preventDefault()取消事件的默认行为,例如,可以监听TextInput的键盘keyDown事件,然后在监听器中,调用preventDefault()方法,就可以阻止用户输入信息在输入框中的显示。