Flash as3 鼠标事件 参数传递
各位高手,我用as3.0做一个动态生成多按钮的页面,需要动态传递参数,以下是我的代码:
var arr_mc_star:Array=new Array();//保存mc
for(var i=0;i<10;i++)
{
arr_mc_star[i].addEventListener(MouseEvent.MOUSE_UP,function(e:MouseEvent){mouseUpHandler(e,0)});
}
function mouseUpHandler(e:MouseEvent,n:int)
{
//
}
后面函数“mouseUpHandler(e,0)”改成“mouseUpHandler(e,i)”就不行,请各位帮忙!
[解决办法]
如果你用inline function就没有必要在下面写一个function的定义,业务逻辑可以全部写在inline function里面,比如:
var arr_mc_star:Array=new Array();//保存mcfor(var i=0;i<10;i++){ arr_mc_star[i].addEventListener(MouseEvent.MOUSE_UP,function(e:MouseEvent){trace(i);//你的业务逻辑});}
[解决办法]
测试过了,后面函数“mouseUpHandler(e,0)”改成“mouseUpHandler(e,i)”可行,测试代码如下:
var arr_mc_star:Array=new Array(); //保存mc for (var i=0; i < 10; i++) { arr_mc_star[i]=new Button(); arr_mc_star[i].addEventListener(MouseEvent.MOUSE_UP, function(e:MouseEvent) { mouseUpHandler(e, i); }); addChild(arr_mc_star[i]); } function mouseUpHandler(e:MouseEvent, n:int) { trace(n); }
[解决办法]
参数不是那样传的。你可以给每个按钮按编号取个名字,比如btn_i,在事件中取按钮的名字,再提出来编号。
[解决办法]