v2_02 了解事件对象和冒泡

v2_02 Understanding the event object and bubbling flex了解事件对象和冒泡
 
事件传播的特性
它包含事件处理中的捕捉,标的和冒泡三个阶段
 
事件对象
每次触发事件,事件对象就会被创建出来,每个事件都是flex框架事件类或它的子类的一个实例,并且是特定事件的存储信息
 
事件对象的某些属性是所有事件的标准属性,但另外一些属性因所发生的事件不同而不同
事件对象传递到事件监听器是可选的
 
目标对象
是一个带有有关组件实例信息的对象,该组件实例广播或发送该事件
 
这里顺带提到了debug的问题
需要安装debug版本的flash player
下载地址:http://www.adobe.com/support/flashplayer/downloads.html  选择其中的for IE
但没有找到chrome版本的,所以在调试的时候,只能把IE设置为默认浏览器了
 
从debug的图中可以看到该事件的类型,目标对象等等(有个target和currentTarget区别后面再看)
在currentTarget中找到id属性
 
看例子,例子中要注意两点
1.event类型,这里使用了具体的事件类型,而不是Event基类,当然使用Event也可以
2.event.target后面用.想自动提示,它没反映,那可以在控制中用id来点出来,再拷到这里来
private function dateChangeHandler(event:CalendarLayoutChangeEvent):void
{
Alert.show('你看我帅不啦!'+event.target.selectedDate.toDateString());
}
 
然后看看这部分代码的效果吧
private function dateChangeHandler(event:Event):void
{
Alert.show('你看我帅不啦!'+event.target.selectedDate.toDateString());
    if(event.target.id == 'returnDate' && returnDate.selectedDate > pickupDate.selectedDate){
        Alert.show('这个按钮是returnDate,pickupDate 在 returnDate之前');
    }
}
 
事件传播
1.事件传播的第一阶段是捕获阶段
  为事件监听器检查目标对象之前,应用程序将首先为监听器检查所有这一阶段所注册的父容器或祖先容器
  从最外层的祖先容器(application)到目标对象的直接容器都需要进行检查
2.事件传播的第二阶段是定标阶段
  本阶段应用程序会为目标对象上的监听器进行检查
  示例中,按钮将为事件( 如click)所注册的监听器进行检查
3.事件传播的第三个阶段是冒泡阶段
  为事件监听器检查目标对象之后,应用程序将为监听器检查所有这一阶段所注册的父容器或祖先容器
 冒泡阶段是捕获阶段的相反阶段,为监听器从目标对象的直接父祖先一直检查到最远的祖先
 
检查事件传播的各阶段就是解释事件对象中的target对象和currentTarget对象之间的不同点
target对象始终指向调度事件的对象
currentTarget对象始终指向当前为监视那些被调度事件而检查的对象
 
这是捕获阶段,因为要一层层向里面检查,所以currentTartget由外向内变化
在定标阶段,为事件监听器检查按钮控制,按钮控件也是事件调度器,所以它既是target也是currentTarget
 

 

 
上面这堆东西不是很好理解,还是看下代码吧
 
第一种情况:

<s:Panel x="82" y="54" width="250" height="200" title="panel"
        id="panel">
    <s:Button x="81" y="64" label="button"
                id="button"
                click="click(event)"/>
</s:Panel>

 

target:点了哪个就是哪个
currentTarget:事件在哪个上面就是哪个
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值