Flash AS3 中监听动作中传递参数,不能用动态变量。
btn.addEventListener(KeyboardEvent.KEY_UP,function(e:KeyboardEvent){setMumberHandler(...
btn.addEventListener(KeyboardEvent.KEY_UP,function(e:KeyboardEvent){setMumberHandler(e,4)});
function setMumberHandler(e:KeyboardEvent,btnIndex:int):void {
...
}
在把监听动作里的4换成变量i后就不认了,怎么解决 展开
function setMumberHandler(e:KeyboardEvent,btnIndex:int):void {
...
}
在把监听动作里的4换成变量i后就不认了,怎么解决 展开
展开全部
4是一个常量,所以可以直接放进去,但是 i 你又没有声明,flash当然无法帮你识别啦,你应该把bfunction(e:KeyboardEvent){setMumberHandler(e,4)});换成bfunction(e:KeyboardEvent){ var i =4;setMumberHandler(e,i)});这样就木有问题了。
更多追问追答
追问
不好意思,我没说清楚,i我定义了的,下面是我的代码:
var btn_Arr:Array=new Array();
for(var i=0;i<100;i++)
{
btn_Arr[i]=new Button();
btn_Arr[i].addEventListener(KeyboardEvent.KEY_UP,function(e:KeyboardEvent){setMumberHandler(e,i)});
}
function setMumberHandler(e:KeyboardEvent,arr_index:int):void {
{
.....
}
追答
你的不认是什么意思?报错了,还是没运行?
你这样也写也有点问题,那个function setMum方法应该写到for循环的外部去吧。
as3貌似只有SimpleButton。。抹灰你是as2的?
展开全部
要先定义i,是i有一个值setMumberHandler才可以响应的,例如var i:int=0;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的主定义中交没有声明i 只是在函数setMumberHandler中包含了这个变量的参数.在这里i只是在函数体内部生效的一个局部变量.因此无法被外部访问.解决办法是在侦听事件之前就定义好这个变量.就好了.
var i:int指定值.
var i:int指定值.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(var i=0;i<100;i++){};
你确定你这样写对?
你的 i 没有声明类型 for(var i:int=0;i<100;i++){};
你确定你这样写对?
你的 i 没有声明类型 for(var i:int=0;i<100;i++){};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询