最近在开发项目中,遇到这么一个问题:在与后台进行交互时,当后台正常处理完成,调用回调方法; 在回调方法中改变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);
关于FLEX事件堆积 导致处理操作叠加 问题
最新推荐文章于 2024-02-17 11:41:28 发布