加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 01:24:17 所属栏目:百科 来源:网络整理
导读:?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.stat
?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了。
?
?
http://flex4jiaocheng.com/blog/459

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读