Flex3基础教程:事件机制与Event对象解析

需积分: 9 3 下载量 22 浏览量 更新于2024-08-17 收藏 88KB PPT 举报
"Flex3基础教程3 - Event对象与事件机制" 在Flex3中,事件处理是基于观察者模式的,这是一种设计模式,允许对象在状态改变时通知其他对象。观察者模式通常被称为"好莱坞原则",即"别找我们,我们会找你的",意味着当被观察的对象发生改变时,它会主动通知其观察者(事件监听器)。这种模式在日常生活中也有广泛应用,如订阅报纸,当有新的报纸发行时,订阅者会被通知。 在ActionScript3(AS3)中,事件处理是通过添加事件监听器来实现的。例如,`button.addEventListener("click", onClick)` 这行代码表示当按钮被点击时,会触发`onClick`方法。这里的`onClick`是一个内部函数,当事件发生时,这个函数会被调用并执行相应的操作,比如更改文本框的内容。 在Flex3的事件模型中,`Event`类是所有事件对象的基类,当某个事件发生时,会创建一个`Event`对象并传递给事件监听器。`Event`类有很多派生类,如`MouseEvent`和`KeyboardEvent`,分别用于处理鼠标和键盘相关的事件。这些类提供了关于事件的详细信息,如事件类型、位置等。 Flex3的事件机制分为三个阶段: 1. 捕获事件阶段:事件从舞台(Stage)开始,逐级向下传播到最底层的显示对象。在这个过程中,如果在任何层级的父对象上注册了捕获事件的监听器,它们将按顺序被调用。 2. 目标阶段:当事件到达实际触发事件的显示对象时,该对象上的监听器会被调用。这是事件处理的核心部分,因为目标对象是事件直接影响的对象。 3. 冒泡阶段:事件从目标对象开始,逐级向上冒泡到舞台。如果在任何父对象上注册了冒泡事件的监听器,它们会在目标对象之后按顺序被调用。 事件流的概念很重要,因为它决定了事件监听器被调用的顺序和时机。开发者可以根据需要在不同阶段添加监听器,以实现特定的交互逻辑。 `EventDispatcher`类是所有可以发送和接收事件的类的基类,包括`DisplayObject`及其子类。`DisplayObject`类是Flex3中所有可显示对象的基类,而`EventDispatcher`则负责事件的分发。`DisplayObjectContainer`是`DisplayObject`的一个子类,它扩展了容器功能,可以包含其他`DisplayObject`实例。 此外,Flex3还提供了一些内置的UI组件,如`SimpleButton`、`TextField`和`Sprite`,它们都继承自`DisplayObject`或其子类,并且能够处理各种用户交互事件。`UIComponent`则是更抽象的基础组件,允许开发者创建自定义的用户界面组件。 Flex3的事件系统基于观察者模式,提供了丰富的事件类和事件流机制,使得开发者能够构建响应用户交互的动态应用。理解和掌握这一机制对于开发富互联网应用程序(RIA)至关重要。