actionscript的事件概念


事件相关概念

1、事件:对象状态改变或者受到外部刺激所定义的信号。
2、事件监听器:当监听到特定事件发生时,对象执行的相关处理的方法。
3、目标对象:实际监听器作用的对象。
4、注册监听器的对象:监听事件发生的对象。

打个比方来说明as的事件机制:

我们看看日常生活治病的过程:我们根据症状判断病症,根据病症来吃药,然后病好了。在这,症状的产生就像事件的发生,吃药相当于事件监听器:有病就吃某种特定的药。如果用as程序模拟治病过程,我想应该是这样的:首先定义一个病症的事件类,在此类中定义多种病症常量,例如流鼻涕根据定义为“感冒”,体温高定义为发烧”。与此同时,定义一个易感人群类,在此类中包含着人们的体征状态变量,根据变量状态的变化抛出某个事件(感冒或者发烧)。此时,每个人都监听自己身体的是否病症事件产生,如果有,吃相应的药。在这里,每个人是易感人群类的一个实例,也是注册监听器的对象(currenTarget):他在监听病症事件是否发生。同时,他自己也是目标对象,因为他是实际监听器作用的对象(target):吃了药后他会变健康。这样一来,我们区分了target和currentTarget的概念,并了解事件的作用和过程。

读者可能已经注意到,在上述这个想象出来的例子里,有一点非常突出,即是:事件监听器对象和注册监听器的对象是相同的。换句话说,病人和医生是同一个人。在生活中,同时为病人和自己医生的例子虽然可能存在,但不广泛。因为每个人都成为医生的社会成本很高。在as反映的问题为“每一个目标对象有可能都要注册同一个监听器,都要监听同种类型的事件,代码很繁琐”。为简化代码,提高效率,as处理方法是从易感人群中选出一个医生(父类),替一群易感人群(子类)监听他们是否有病症事件发生,如果监听到有病症事件,则向每一个继承父类的子对象告知事件发生,调用事件监听器来处理。而且,as中采取事件流机制,分三个阶段:捕获、目标、冒泡。捕获。一个事件先由它的父类(如果有的话)捕获,然后传给目标对象(子类),然后再冒泡回给父类。采用这种事件流的优点是方便事件集中统一管理。这就好医生比专门负责一群易感人群一样。

欢迎指正!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值