首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为事件处理程序使用闭包的ActionScript 3.0

为事件处理程序使用闭包的ActionScript 3.0
EN

Stack Overflow用户
提问于 2008-10-07 18:06:10
回答 7查看 9.9K关注 0票数 15

我试过这样做:

代码语言:javascript
复制
root.addEventListener("click", 
   function () 
   { 
      navigateToURL(ClickURLRequest,"_self"); 
   });

并且它确实添加了事件侦听器。我喜欢使用闭包,因为它们在这种情况下工作得很好。

但是,删除事件侦听器需要引用原始函数,因为我使用了匿名闭包,所以它不起作用,我尝试了:

代码语言:javascript
复制
   root.removeEventListener("click", 
       function () 
       { 
          navigateToURL(ClickURLRequest,"_self"); 
       });

以及:

代码语言:javascript
复制
   root.removeEventListener("click", function () {} );

我发现它唯一有效的方法是抛弃匿名闭包,将事件侦听器指向一个预先存在的函数:

代码语言:javascript
复制
 function OnClick (e:Event)
 {
     navigateToURL(ClickURLRequest,"_self");
 }

 root.addEventListener("click", OnClick);
 root.removeEventListener("click", OnClick);

有没有人知道如何对事件处理程序使用匿名闭包,同时保留删除它们的能力?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/179668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档