AS3 默认事件传参
在制作一些一个面板包含多状态的时候
通常为了简便
控制状态的按钮(状态A的按钮,状态B按钮...)都会去监听同一个click事件
可以借助 btn.name 来区别点击的按钮,但往往只能记录一个参数
这时候想要事件传多个参数
又想要偷懒 不想去自定义一个新的事件来保存参数
可以考虑借助返回函数的方式来传递参数
代码
// 要传递的参数
var value:int = 100;
// 触发事件的按钮
var btn:Btn = new Btn;
btn.addEventListener(MouseEvent.CLICK,clickHandler(value));
// 返回事件处理的函数
function clickHandler(v:int):Funciton
{
return function (e:MouseEvent):void{
//处理传入的参数 V
doSomeThing(v);
}
}
注意:
这里在btn 添加监听事件时 传入的 是 value (简单类型int)
传入的将是固定的值 100.
想使用各种变量
可以加在直接在返回的函数中,不需要经过clickHandler()里面传参,或者传入引用对象