Event机制作为重头戏,在ActionScript 3.0中加强了很多。更加统一、易用、标准、灵活。
ActionScript 2.0中有众多的事件实现机制:
回顾和比较
AS1.0玩家最爱用onClipEvent(), on(),又方便又直接。缺点在于逻辑分散到了各个舞台元件中,难以管理和维护。更加别说代码重用了。别跟俺说可以Copy, Paste,这不叫重用,这叫低级。
AS2.0中,增加了一些事件处理机制:
1.回调函数: onLoad, onComplete等。相信兄弟们最熟悉的应该就是XML.onload回调函数了。
2.事件侦听器型:
这个就是addListener(), addEventListener()这种类型的。发送事件有的是内置,有的通过dispatchEvent().
嗯,这种事件机制基本上就和AS3.0很像了。自从使用了ActionScript 2.0来开发项目,就尽可能的多用这种事件处理机制。这个习惯很好,基本上让对3.0的机制很快适应过来。
说道这里,要多扯几句2.0,抱怨一下它的不足,再让大家看看AS3.0的光明大道。
(1).2.0中除了UIComponent能自己发送事件,绝大部分类不能自己发送事件的,比如MovieClip, 或者一些自定义的类。还制作了一个EventSender的事件发送类来解决。
当然你可以通过扩展来解决MovieClip这些类来解决,但是在一些轻量级或者特殊运用中,还是用这个EventSender类更加方便。
比如说,你突然需要舞台上某个A_mc的运行到第20帧时发送一个"finished"事件出来,并且希望另外某个B_mc能够捕捉到这个事件,那么用一般的扩展方法不知道有多么麻烦!
(2)要重做一个带有事件发送功能的类和A_mc通过某种方式绑定。2.同时确保在B_mc中要能访问到发送事件的对象并addEventListenr)。
而用俺的EventSender类非常简单,A_mc中写 EventSender.send("finished", this), B_mc中写EventSender.addListener("finished", listenerFunc),并可以通过event.target属性直接定位A_mc,真是简单的不能再简单了。(请尽量以正规方法为主,不推荐频繁使用,不是好的编程习惯)
(3)2.0中,侦听器的记忆是"有毛病"的。如果是新手,会经常觉得侦听器函数的this关键字指向飘忽不定,常常弄错。而且看看高手的代码,一会儿是Object做侦听器,一会儿是function做侦听器,真是让人头痛。其实MacroMedia也很头痛,所以就出了Delegate这个官方类(补丁?)来解决这些问题。
(4)侦听器注册方式也有两种,一种是addListener(),如Key,一种是addEventListener(),如UIComponent类。为什么要这样搞两种?MacroMedia无辜的望着我,喃喃道偶也不完全清楚。
超人来了,那就是ActionScript 3.0事件处理机制:
(1)统一。全部一色用addEventListener().
(2)所有的可视对象都可以接受和发送事件。
AS3.0的类继承设计是深思熟虑的,所有的可视对象所属类都是DisplayObject的子类, DisplayObject又是EventDispatcher的子类。因此它们就都可以玩Event了,所以说,有个好的老子就是好啊。
而且有了崭新的事件冒泡机制,可以使事件层层上递到最上层的Stage,绝好的功能!有了以上两点:EventSender类也可以歇菜了。
(3)侦听器统一使用Function,不再使用Object了。 同时this关键字的记忆力“大大增强”,Delegate类也可以下岗了。
Event涉及到的内容极多,面很广。下面将从以下几个方面讲起:
一、如何接收事件?如何做到AS3.0的标准事件编程。
二、如何发送自定义事件?如何在OOP中正确使用AS3.0强大灵活的事件架构。
三种方式及其优劣,以及在何种情况下使用。
(1)用继承EventDispatcher实现
(2)用复合EventDispatcher实例来实现。
(3)用接口IEventDispatcher实现
三、如何使用冒泡机制(即官方所称的Event Flow机制)?以及冒泡机制的原理。
四、Event的其他高级应用。
本文来自CSDN博客http://blog.csdn.net/baijinwen/archive/2007/04/04/1551715.aspx
分享到:
相关推荐
在AS3中,事件机制是基于事件监听和广播的模式,允许开发者将特定事件与处理这些事件的方法或函数关联起来。虽然PHP是一种主要用于服务器端编程的语言,但其通过这种事件机制也可以实现类似于客户端语言的事件驱动...
### AS3事件属性详解 #### 一、引言 在ActionScript 3.0 (简称AS3)中,事件处理机制是程序设计的核心之一。掌握AS3中的事件属性及其应用场景对于开发高质量的交互式应用程序至关重要。本文将深入探讨AS3事件流中的...
ActionScript 3.0的事件机制是基于文档对象模型(DOM3)的。这意味着AS3中的事件处理遵循DOM3规范中定义的模式和标准。这一模型提供了统一的方式来处理各种类型的事件,包括但不限于鼠标事件、键盘事件等。这种标准...
这个"UDP.rar_as3 udp_flash as3.0 UDP_flash发送udp_udp as3_windows as3.0"的压缩包,看起来包含了一个名为"UDP.fla"的文件,这是一个Flash的源文件,可能是一个AS3的项目,用于演示或教学如何在Flash中使用UDP...
【标题】:“AS3 视频播放器 纯...综上所述,这个“AS3 视频播放器 纯AS3”项目是一个学习和实践AS3视频处理能力的好素材,使用者可以通过这个项目深入理解AS3的视频播放机制,并根据需要扩展和定制自己的视频播放器。
总之,AS3事件机制是通过`addEventListener`方法注册事件处理函数,使用预定义的事件常量来指定事件类型。理解并熟练运用事件处理是AS3开发的关键技能之一,它使得代码更加模块化,易于维护和扩展。在实际开发中,应...
以下是一些关于AS3事件处理的关键知识点: 1. **事件类**:AS3中所有的事件都继承自Event类,比如MouseEvent、KeyboardEvent和TimerEvent等。每个事件类都有特定的类型,比如"click"或"keydown"。 2. **事件流**:...
通过以上步骤,我们就建立了一个简单的AS3事件处理机制,遵循观察者模式。这个机制使得代码更加模块化,降低了对象间的耦合度,提高了代码的可维护性和可扩展性。在实际项目中,可以根据需求扩展事件类型和监听器,...
通过以上内容,我们了解了Flash CS3与AS3中的键盘事件处理机制,这为创建丰富的交互体验奠定了基础。实际应用中,开发者可以根据需求进行更复杂的逻辑设计,如组合键、延迟处理、按键持续时间等。结合`keyCodes.fla`...
AS3(ActionScript 3)是Adobe开发的一种面向对象的编程语言,主要用于创建富互联网应用程序(RIA),尤其是在Flash平台上。AS3的类继承树和中文API是开发者学习和理解AS3核心概念的重要参考资料。 首先,让我们来...
2. **事件驱动编程**:AS3的核心之一就是事件驱动模型,这使得它在处理用户交互时表现出色。文档会解释Event类、EventListener接口和事件监听器的工作原理。 3. **数据类型和变量**:AS3支持基本数据类型如Number、...
AS3事件机制使用Observer模式,允许对象之间的松耦合,事件分发者可以将事件发送给事件监听器,事件监听器可以选择是否接收事件。 11. addEventListener的使用方法 addEventListener方法用于添加事件监听器,需要...
这份中文帮助文档对于Flash开发者来说是一份宝贵的参考资料,无论是在FD(FlashDevelop)或其他集成开发环境中,都可以辅助开发者更高效地理解和应用AS3语言特性,从而创建出富有互动性和表现力的Flash内容。
5. 事件模型:AS3采用了基于事件的编程模型,事件监听和分发机制让程序响应用户交互和系统变化。如点击按钮、加载完成等事件,都可以通过addEventListener()和removeEventListener()来处理。 五、图形绘制 6. 可...
3. **事件驱动编程** - AS3中的事件模型是其核心特性之一,允许程序响应用户输入或其他外部事件。事件监听器和事件对象的使用是理解AS3程序工作方式的关键。 4. **动作脚本组件** - AS3引入了一系列预定义的UI组件...
AS3编程的优势在于它拥有一系列核心语言功能和FlashPlayer API功能。核心语言功能包括高级数据类型、控制结构、函数、闭包等。FlashPlayer API功能则为开发者提供了丰富的接口,用于控制视频、音频、网络通信等。...
4. 事件处理:AS3的事件处理机制更为规范,需要熟悉addEventListener和removeEventListener方法。 5. 动画和时间轴控制:AS3的动画和时间轴控制与AS2不同,不再依赖于时间轴,而是通过编程实现。 6. 显示对象层次:...
我们可以总结出一系列关于ActionScript 3.0(简称AS3)的关键知识点,这些知识点覆盖了AS3的多个方面,包括日期和时间管理、字符串操作、数组处理、错误处理、正则表达式使用、XML和JSON处理、事件处理、显示编程、...
2. **事件驱动编程**:AS3中的事件模型是其核心机制之一,允许响应用户交互或其他程序事件。事件监听器注册(addEventListener)和移除(removeEventListener)是处理事件的关键。 3. **显示列表**:AS3的显示列表...