Flex as3事件处理基础
事件处理的介绍
在as3中,每个事件被表示为事件对象,即Event类或者其子类的实例。一个事件对象不只保存特定事件的信息,还包括方便操作事件对象的方法。比如,当flash player或者air检测到一次鼠标点击,将创建一个事件对象(一个MouseEvent类的实例),用来表示这个特定的鼠标点击事件。
事件对象创建后,由flash player或者air程序传递(dispach),即发送给事件的目标对象。作为传递事件对象目的地的对象,被称作事件目标(event target)。比如,当添加的摄像头开始工作,flash player直接传递一个事件对象给事件目标,在目前示例应该是一个表示摄像头的对象。如果该目标对象在显示列表中,事件对象在显示列表中传递,直至找到事件目标。在有些情况下,事件对象可能继续“冒泡”,沿着刚才列表传递路径回退。这种在显示列表中遍历的过程,被称作事件流(event flow)。
可在代码中使用事件监听器监听事件对象。事件监听器是函数或者方法,用于处理对特定事件的响应。为了能在程序中对事件作出响应,需要在事件目标或者初一事件流中任意显示列表对象加入事件监听器。
一般编写事件监听器的示意性代码:
function eventResponse(eventObject:EventType):void { // Actions performed in response to the event go here. } eventTarget.addEventListener(EventType.EVENT_NAME, eventResponse);
常用的事件处理任务
以下为常用的事件处理任务:
- 编写响应事件的代码;
- 填写响应事件的代码;
- 操作事件对象;
- 操作事件流:标识事件流信息、填充事件流、阻止默认行为
- 从你的类中传递事件;
- 创建自定义事件类型。
重要的概念和术语
- 默认行为(default behavior):一些事件包含一个通常发生地行为。比如,用户在文本框中输入文本,一个文本输入事件就产生。这个事件的默认行为是显示字符到文本框。有时不希望输入的字符显示,就需要覆盖默认行为。
- 传递(dispatch):通知事件监听器一个事件发生了。
- 事件(event):一个对象上发生了一些事情,该对象可告诉其他对象有关情况。
- 事件流(event flow):当事件在一个显示列表(一个显示在屏幕上的对象)中对象上发生,所有包含这个对象的对象,被事件通知并通知它们的事件监听器工作。这个过程开始于舞台(stage),沿着显示列表到达事件发生地实际对象,然后再沿着上述路线返回舞台(stage)。
- 事件对象(event object):一个包含特定事件发生信息的对象,用于传递给所有监听器。
- 事件目标(event target):实际传递事件的对象。比如,用户点击按钮,将产生事件,按钮在这里是事件目标。
- 监听器(listener):一个对象或者函数,将自己注册到一个对象,用来指示当特定事件发生要通知它。
相关日志
这篇文章上的评论 RSS feed TrackBack URI