AS3带参数的调用方法,应该如何注销掉removeEventListener
2017-03-22 00:00
274 查看
问题:
在使用AS3中给相关事件绑定相关代码时候 我们一般使用file.addEventListener(Event.COMPLETE,completeHandler);
其中completeHandler为事件触发调用的函数名称
但实际需求中更多不仅是要在事件发生时执行函数,也需要对该函数传递相关参数
file.addEventListener(Event.COMPLETE,
function(e:Event){
completeHandler(e,参数)
},false,0,true
);
一般取消方式
file.removeEventListener(Event.COMPLETE, completeHandler);
这样就能按需要把对象的文件上载完成事件注销掉
按上面带参数的调用方法,应该如何取消,至少我写成
file.removeEventListener(Event.COMPLETE, completeHandler);
或者
file.removeEventListener(Event.COMPLETE, function(e:Event){
completeHandler(e,参数)
;});
都无法达到注销事件的目的
解决方案:
利用arguments的关键字callee返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文。[function.]arguments.callee可选项 function参数是当前正在执行的 Function对象的名称。说明callee属性的初始值就是正被执行的 Function 对象。callee属性是 arguments 对象的一个成员,它表示对函数对象本身的引用。
添加监听:
file.addEventListener(Event.COMPLETE,
function(e:Event){
completeHandler(e,btnId,arguments.callee)
},false,0,true
);
public var completef:Function; //用于存放需要被remove的函数对象
private function completeHandler(event:Event,btnId:String="bzfw",callee:Function=null):void{
completef=callee;// 带清理函数
。。。。。。
}
注销事件:
var bool:Boolean = file.hasEventListener(Event.COMPLETE);
if (bool)
file.removeEventListener(Event.COMPLETE, completef);
相关文章推荐
- 如何用perform selector调用超过两个以上参数的方法
- C#如何通过反射调用带有ref或者out的参数的方法
- 调用方法中如果方法中的形式参数是应用类型(类名)时,该如何调用
- struts2 笔记01 登录、常用配置参数、Action访问Servlet API 和设置Action中对象的值、命名空间和乱码处理、Action中包含多个方法如何调用
- ios如何用perform selector调用超过两个以上参数的方法
- 如何在调用方法时,让方法中的参数指向元素本身
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)
- c#如何调用带参数的方法
- Struts2动态方法调用和 如何传递参数(参考博客)
- 如何通过AS3加载外部SWF文件,调用外部文件文档类的方法?
- 如何通过反射调用带有ref或者out的参数的方法[迁移]
- dwr中如何调用有参数的java方法
- settimeout如何调用方法的时候,传递参数
- ASP.NET中如何在前端ASP里面调用一个后台方法并传入参数
- 如何通过AS3加载外部SWF文件,调用外部文件文档类的方法?
- java一个方法形参有两个,如何在调用的时候只传入一个参数
- 2.2.1 传播行为 当事务方法被另一个事务方法调用时,必须指定事务应该如何传播。例如:方法可能继续在现有事务中运行,也可能开启一个新事务,并在自己的事务中运行。
- C#如何在线程里调用带参数的方法
- 如何通过AS3加载外部SWF文件,调用外部文件文档类的方法?
- 如何用perform selector调用超过两个以上参数的方法