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
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |