as3中的addEventListener事件监听会自动传递一个事件对象参数给处理函数,可是不能传递其他参数. 如果要为事件处理函数送参数的话可以用这种方法:
见代码:
- var sayHello:String = "欢迎光临www.FlashJ.cn -Flash,Ria技术博客";
- btn1.addEventListener(MouseEvent.CLICK,function (e:MouseEvent){clickHandlerWithArg(e,sayHello)});
- function clickHandlerWithArg(e:MouseEvent,arg:String):void
- {
- var out:String= e.target + "发出事件(有参数) :" + arg;
- trace(out);
- }
实例源文件:listener.rar
我个人的做法,往往都是var一个模块级变量用来记录要传递的参数.
学习了. 鼠标发现一个问题. 你BLOG的CSS.在IE6下右边有点小问题.
我也发现了…问题已修正
聪明!
当时我还想AS3应该会提什么可以传参的,结果还是鼠标的方法好行!
谢谢你了,帮了我大忙。
这是匿名函数!要移除它,怎么做?
匿名函数的事件处理无法移除….所以只是图个方便,并不鼓励这么做。
这个不能在类里面用我发现会出问题。
我在天地会用一个事件监听类也挺方便的,炸弹可以去看看
@鼠标炸弹, 这个事件是可以移除的。e.currentTarget.removeEventListener(e.type, arguments.callee);
我平时的做法
addEventListener(MouseEvent.CLICK, onClick(“参数”));
var onClick:Function = function(e:String):Function
{
return function(event:MouseEvent):void{
}
}