本帖最后由 网雨霏霏 于 2019-1-30 20:18 编辑
AS版本:AS3 IDE:flashCS6 是否原创:是 简介:非常简单的一个相册小程序: 效果预览: 源码下载: 本帖隐藏的内容需要回复才可以浏览
最近访问本帖者列表: | |||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||
target语句 本帖最后由 网雨霏霏 于 2019-1-30 20:45 编辑
注意:本例代码很简单。下文转自别处,有兴趣的可以看一下。 以下转自:https://www.cnblogs.com/sinsoul/p/3427265.html 在事件处理过程中,会自动生成事件类的实例,并传给侦听器函数。通过这个参数就可以使用事件类的属性和方法。其中target与currentTarget属性是两个很相似的属性。 对于简单的事件处理过程,分清target与currentTarget并没有必要。因为它们一般指向同一个对象。例如,舞台中有一个实例名为mc的影片剪辑实例,通过下面的代码为这个实例注册单击事件。
============================== 下面通过例子来了解target与currentTarget属性的异同 1、新建Flash文档 2、改图层1名为as,单击图层的第1帧,打开动作面板,输入代码:
如果为父级sp1注册一个单击事件侦听器,当单击sp1时,target与currentTarget都指向sp1,当单击sp2时,target指向sp2,而currentTarget指向sp1。 因此在很多应用中,一般认为currentTarget指向父级。代码如下:
如果为子级和父级都注册一个侦听器,那target属性是指单击的目标,而currentTarget属性是指在处理的事件即活动目标。 因为3.0的事件处理有捕获、目标、冒泡3个阶段,并且默认时采用冒泡机制,当单击子级时,currentTarget属性应先指向目标,并向上冒泡,就是先指向sp2,再指向sp1。 为程序增加sp2注册事件侦听器:
而target属性就指事件流中的目标,例如,单击了sp2,不管事件如何冒泡或说不管currentTarget指向谁,target都指向sp2。 target属性在事件流的目标阶段,而currentTarget属性在事件流的冒泡阶段、目标阶段和捕获阶段。 以单击事件为例,只有事件流处于目标阶段时,currentTarget属性与target属性的指向才相同,当事件流处于冒泡阶段和捕获阶段时,target属性总是指向被单击的对象,而currentTarget属性指向当前事件活动的对象。 即使在没有发生事件流的处理时,有时也需区别target和currentTarget属性,比如在舞台中创建mc1,在mc1中又创建mc2,且mc2位于mc1的上面。 当对父级对象即mc1处理事件时,使用下面的代码1:
如果要使用e.target属性始终指向mc1,可以使用容器对象的mouseChildren属性: mc1.mouseChildren = false; 当mc1的mouseChildren属性被设置成 false后,mc1的子级对象将不能处理鼠标事件,此时不管单击mc1还是mc2输出的都是mc1。 代码2:
代码3;
| |