AS3.0教程(5)强大的事件机制(上)
更新时间:2023-06-03 14:26:02 阅读量: 实用文档 文档下载
- as3.0教程pdf下载推荐度:
- 相关推荐
as
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能够捕捉到这个事件,那么用一般的扩展方法不知道有多么麻烦!
(1.要重做一个带有事件发送功能的类和A_mc通过某种方式绑定。2.同时确保在B_mc中要能访问到发送事件的对象并addEventListenr)。
而用俺的EventSender类非常简单,A_mc中写 EventSender.send("finished", this), B_mc中写EventSender.addListener("finished", listenerFunc),并可以通过event.target属性直接定位A_mc,真是简单的不能再简单了。(请尽量以正规方法为主,不推荐频繁使用,不是好的编程习惯)
(2)2.0中,侦听器的记忆是"有毛病"的。如果是新手,会经常觉得侦听器函数的this关键字指向飘忽不定,常常弄错。而且看看高手的代码,一会儿是Object做侦听器,一会儿是function做侦听器,真是让人头痛。其实MacroMedia也很头痛,所以就出了Delegate这个官方类(补丁?)来解决这些问题。
(3)侦听器注册方式也有两种,一种是addListener(),如Key,一种是addEventListener(),如UIComponent类。为什么要这样搞
两种?MacroMedia无辜的望着我,喃喃道偶也不完全清楚。
超人来了,那就是ActionScript 3.0事件处理机制:
(1)统一。全部一色用addEventListener().
(2)所有的可视对象都可以接受和发送事件。
AS3.0的类继承设计是深思熟虑的,所有的
as
可视对象所属类都是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的其他高级应用。
P.S:本教程受Creative Commons License.协议保护,未经作者同意,不得用于商业用途。
正在阅读:
AS3.0教程(5)强大的事件机制(上)06-03
单片机期末复习资料带有答案12-21
独立学院化学工程与工艺专业建设及特色发展的研究与实践 研究报告04-27
环境影响评价法律法规复习06-01
我的梦想作文200字07-10
供应链及财务流程06-06
钢结构端板连接抗震设计方法07-25
自动控制原理教案-自控学习与解题指导06-08
浅谈乘务员服务礼仪规范07-17
VVVF门机控制器操作说明07-18
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 强大
- 机制
- 事件
- 教程
- 3.0
- 音乐《我是一个粉刷匠》教案
- 广西安全文明施工费使用管理细则桂建质16号(新版)
- 阜阳市第三中学新校区扩建工程施工组织设计(暗标)
- 医学检验个人实习心得
- LED投光灯销售合同
- 美术教育论文开题报告
- 项目档案归档目录一览表(档案室用)
- 国培优秀学员推荐材料
- 在“三严三实”专题党课上的讲话
- 大工《机械制造装备设计》课程考试模拟试卷B答案
- 混凝土施工缝留置
- 小学生网络安全教育 (1)
- 房地产营销策划书模版
- 浅谈小学数学教学中的作业设计
- _沿力走_法快速画梁剪力图和弯矩图
- 德国古典哲学是马克思主义哲学的直接理论来源
- 东莞市小学三年级数学下学期期末考试试题附解析
- 论高等职业院校办学的特色定位
- 后备母猪发情配不上种老是反情是什么原因?
- 【帮帮群】初升高入学考试英语模拟试题及答案