首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Flash >

Flash as3 鼠标事件 参数传递解决方法

2012-03-22 
Flash as3 鼠标事件 参数传递各位高手,我用as3.0做一个动态生成多按钮的页面,需要动态传递参数,以下是我的

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里面,比如:

JScript code
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)”可行,测试代码如下:
JScript code
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,在事件中取按钮的名字,再提出来编号。
[解决办法]
探讨
参数不是那样传的。你可以给每个按钮按编号取个名字,比如btn_i,在事件中取按钮的名字,再提出来编号。

热点排行