我有一点问题,我真的不明白我是否可以在同一个对象(和相同的回调函数)上多次使用addEventListener
如果这种情况我可以遇到溢出问题,或者简单的flex非常聪明,不能在相同的堆栈中再次添加相同的功能
例如:
var t:CServiceObj = _rModel.userGetBoardJoined();
t.addEventListener(EDataService.DATA_AVAILABLE,onDataOk);
t.addEventListener(EDataService.DATA_AVAILABLE,onDataOk);
t.addEventListener(EDataService.DATA_AVAILABLE,onDataOk);
答案 0 :(得分:1)
正如你所说,Flex是“聪明的”,即使你在同一个实例上多次订阅一个事件,那么处理程序只会调用一次(无论你传递多少个addEventListener)。
答案 1 :(得分:1)
我尝试对Button进行快速测试,如果将addEventListener多次添加到同一个函数中也没关系 - 它会被调度一次。
但是,您可以设置类似这样的内容
t.addEventListener(EDataService.DATA_AVAILABLE,onDataOk);
t.addEventListener(EDataService.DATA_AVAILABLE,onDataOk2);
其中onDataOk2使用event参数调用onDataOk。
有趣的说明 一个不同的测试,我在mxml标签中添加了一个click处理程序,并在AS中添加了一个单击处理程序,两者都指向同一个函数。当点击按钮时,两个处理程序都会被调度,因此Flex在幕后做了一些事情来适应这个功能。