码迷,mamicode.com
首页 > 其他好文 > 详细

AS3.0 给addEventListener里的方法加上参数传递

时间:2019-01-29 18:00:58      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:dde   click   传递   tar   xxx   goto   绑定   mouse   cti   

方法一:
for(var i:int=1;i<=4;i++){
this["btn"+i].addEventListener(MouseEvent.CLICK,EventUp(btnClick,i));
}

function btnClick(e:MouseEvent,...arg){
photoMC.gotoAndStop(arg);
}
function EventUp(f:Function,... arg):Function{
return function(e:Event){f.apply(null,[e].concat(arg))};
}

将触发事件的方法包裹在另一个函数里,然后再将e:Event 对象合并到一个数组(加上要传递的参数)。
这里使用apply方法,为btnClick绑定两个参数(e和arg)
之后触发btnClick时,e对应e:MouseEvent,而arg对应...arg

方法二:
var sayHello:String = "xxxxxx";
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);
}

使用匿名函数里包裹触发事件(加上参数)
参数包括e和value

AS3.0 给addEventListener里的方法加上参数传递

标签:dde   click   传递   tar   xxx   goto   绑定   mouse   cti   

原文地址:https://www.cnblogs.com/YKingcc/p/10334269.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!