[size=medium]
那天用AS3.0的时候,使用enabled设置按钮的可用性。突然发现即使 enabled=false后,按钮依然可以点击。而换用flash8使用2.0代码确发现一切正常。当时以为是CS4的问题。就匆忙换上CS3,哪知道 CS3问题依旧。于是乎又以为是电脑问题。便换了台电脑测试。结果问题照旧。
后来才明白原来不是计算机和软件的问题,是我认识上的问题。
原来在2.0的时候由于按钮大多不必使用事件侦听器。所以当把按钮可用性设置为false的时候,按钮和按钮上的交互自然就全部被设为不可用了。而在3.0当中,由于事件处理机制的改变。所有事件皆由统一的事件侦听器监听处理。所以在我把某按钮可用性设为false的时候。按钮本身的可用性的确是全部不可用了。(例如:按下,移上效果)但我为该按钮设置的事件侦听器依然在正常工作。当我点击按钮时,虽然按钮本身的交互性是失去了。但事件侦听器依然在运作,所以就监听到我的点击,并正常的处理。这就使我产生了enabled属性失效的错觉。
所以要记住的是。如果想去掉某个按钮的所有交互,一定要在使用enabled属性的同时,使用removeListener移除该按钮的事件侦听。
[/size]
那天用AS3.0的时候,使用enabled设置按钮的可用性。突然发现即使 enabled=false后,按钮依然可以点击。而换用flash8使用2.0代码确发现一切正常。当时以为是CS4的问题。就匆忙换上CS3,哪知道 CS3问题依旧。于是乎又以为是电脑问题。便换了台电脑测试。结果问题照旧。
后来才明白原来不是计算机和软件的问题,是我认识上的问题。
原来在2.0的时候由于按钮大多不必使用事件侦听器。所以当把按钮可用性设置为false的时候,按钮和按钮上的交互自然就全部被设为不可用了。而在3.0当中,由于事件处理机制的改变。所有事件皆由统一的事件侦听器监听处理。所以在我把某按钮可用性设为false的时候。按钮本身的可用性的确是全部不可用了。(例如:按下,移上效果)但我为该按钮设置的事件侦听器依然在正常工作。当我点击按钮时,虽然按钮本身的交互性是失去了。但事件侦听器依然在运作,所以就监听到我的点击,并正常的处理。这就使我产生了enabled属性失效的错觉。
所以要记住的是。如果想去掉某个按钮的所有交互,一定要在使用enabled属性的同时,使用removeListener移除该按钮的事件侦听。
[/size]