关于FLEX事件堆积 导致处理操作叠加 问题

来源:互联网 发布:数据挖掘的应用领域 编辑:程序博客网 时间:2024/05/22 16:45
            最近在开发项目中,遇到这么一个问题:在与后台进行交互时,当后台正常处理完成,调用回调方法;      在回调方法中改变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);
原创粉丝点击