Flex 4在多状态(State)下使用事件(如click等)要特别注意

 Flex 4中多state下使用事件的做法是先在<s:states />里定义state,再在mxml中用click.stateName="..."的写法使用。
【来看个小例子】
<s:states>
<s:State name="state_1"/>
<s:State name="state_2"/>
</s:states>
<s:Button click="state1Handler(event)" click.state_2="state2Handler(event)"/>
<s:Button click.state_1="state1Handler(event)" click.state_2="state2Handler(event)"/>
  为什么我要写两种写法呢?第一个是click第二个是click.state_1。让我们来具体分析一下:
  第一个是默认状态下的click事件,因为Flex 4默认第一个状态就是默认状态,所以你会“以为”click=“...”就是在state_1状态上的事件!!真的吗?其实你的“以为”是不正确的!!
  我们知道click=“...”就是为click事件添加event listener(监听),而且是为click添加了一个不分状态的监听(只要click按钮就会来这个事件);也就是说如果你用第一种写法,那么在state_2时会来到state2Handler方法,也会来到state1Handler方法,而且是先到state1Handler方法,再到state2Handler方法。
  这个可没有达到你“以为”的效果哦,如果想到达到你“以为”的效果,那么就用第二种写法就OK了。
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值