最近在开发项目中,遇到这么一个问题:在与后台进行交互时,当后台正常处理完成,调用回调方法;
在回调方法中改变KEY值: model.FIND_PASSWORD_KEY = UIDUtil.createUID();
并在VIEW中<mx:Label id="operate" text="{model.FIND_PASSWORD_KEY}" visible="false"/>
在初始化方法initComp()中进行KEY改变事件监听:operate.addEventListener(
FlexEvent.UPDATE_COMPLETE, onOperate );函数onOperate为事件处理函数。
当我每次重复该功能操作时,该函数onOperate被调用的次数也随着操作次数的增加而增加。
从而导致同一操作重复处理。
通过查找资料,总算解决了,其实只需要在适当的时候把监听移除就 OK了。比如在该组件关闭的时候,
operate.removeEventListener( FlexEvent.UPDATE_COMPLETE, onOperate);
至于这个问题的原因,我猜测可能是Flex事件映射列表,没有即时清理失效事件:
(FlexEvent.UPDATE_COMPLETE, onOperate),导致下次操作时该时间映射还存在,所以当该事件被激
发,该事件处理函数多次被调用。
记录哈来,免得以后再次遇到。。。
所以,当监听了某事件,不用时应养成移除事件习惯。
operate.addEventListener( FlexEvent.UPDATE_COMPLETE, onFuntion);
operate.removeEventListener( FlexEvent.UPDATE_COMPLETE, onFuntion);