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后就不认了,怎么解决
展开
 我来答
南国孤叶
2011-03-28 · TA获得超过244个赞
知道小有建树答主
回答量:343
采纳率:0%
帮助的人:190万
展开全部
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的?
cos7410
2011-03-26
知道答主
回答量:11
采纳率:0%
帮助的人:0
展开全部
要先定义i,是i有一个值setMumberHandler才可以响应的,例如var i:int=0;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d460e38
2011-03-27 · 超过51用户采纳过TA的回答
知道小有建树答主
回答量:128
采纳率:0%
帮助的人:85.5万
展开全部
你的主定义中交没有声明i 只是在函数setMumberHandler中包含了这个变量的参数.在这里i只是在函数体内部生效的一个局部变量.因此无法被外部访问.解决办法是在侦听事件之前就定义好这个变量.就好了.
var i:int指定值.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乜也乜
2011-03-30 · 超过47用户采纳过TA的回答
知道小有建树答主
回答量:252
采纳率:0%
帮助的人:132万
展开全部
for(var i=0;i<100;i++){};
你确定你这样写对?

你的 i 没有声明类型 for(var i:int=0;i<100;i++){};
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式