"Flex3基础教程的第三部分主要讲解了事件机制,包括观察者模式的概念、AS3中的事件处理示例以及事件机制类继承图。此外,还提到了事件流的三个阶段:捕获事件、目标阶段和冒泡阶段。"
在Flex3中,事件机制是基于观察者模式实现的,这是一种设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。观察者模式在编程中常被称为发布/订阅模式,就像现实生活中的订阅报纸或房产中介服务,用户订阅后会在有新消息时收到通知。
在ActionScript 3 (AS3)中,事件处理是通过addEventListener方法实现的,例如`button.addEventListener("click", onClick)`,这里添加了一个点击事件监听器,当按钮被点击时,会执行onClick函数。在这个例子中,onClick函数用于改变文本框的内容。
Flex3的事件机制类继承图展示了事件处理相关的类层次结构,从Object基类开始,经过EventDispatcher,到达DisplayObject类,这个类是所有可显示对象的基类。接着是AVMiMovie、Video等特定的媒体类,StaticText、Shape、MorphShape等图形类,InteractiveObject表示可以交互的对象,Bitmap是位图类,DisplayObjectContainer是包含其他显示对象的容器,SimpleButton和TextField是常见的UI组件,Loader用于加载外部资源,Sprite是灵活的图形容器,Stage代表整个应用程序的舞台,而MovieClip则是可以包含多个帧的动画类,UIComponent是Flex UI组件的基础。
事件流是事件传递的过程,分为三个阶段:
1. 捕获事件:事件从最顶层的根节点(通常是Stage)开始,向下逐级传递到目标节点,如果沿途的节点注册了捕获事件的监听器,就会调用对应的处理函数。
2. 目标阶段:事件到达实际触发事件的目标对象,此时会执行目标对象上直接注册的监听器。
3. 冒泡阶段:事件从目标对象向上冒泡到父级节点,如果这些父节点注册了冒泡事件的监听器,也会依次执行。
理解这一事件机制对于开发Flex3应用至关重要,因为正确地处理事件和理解事件流可以帮助开发者创建出响应用户交互的动态和交互性良好的界面。