0
我已经尽可能在AS3的舞台上添加了多个按钮,并为他们提供了独特的实例名称,但是现在我遇到了问题。可能存在的按钮数量没有限制,可能有一个或一百个,所以我不能硬编码。AS3:添加多个按钮以使用eventlistener登台?
我该如何去为每个按钮创建事件侦听器?我尝试将每个实例名称都推送到一个数组中,然后循环但是这给我一个关于按钮不存在的错误,所以它不能听。
我该怎么做?任何帮助深表感谢!
我已经尽可能在AS3的舞台上添加了多个按钮,并为他们提供了独特的实例名称,但是现在我遇到了问题。可能存在的按钮数量没有限制,可能有一个或一百个,所以我不能硬编码。AS3:添加多个按钮以使用eventlistener登台?
我该如何去为每个按钮创建事件侦听器?我尝试将每个实例名称都推送到一个数组中,然后循环但是这给我一个关于按钮不存在的错误,所以它不能听。
我该怎么做?任何帮助深表感谢!
一些示例:
function init():void
{
var btn:Sprite;
for (var i:uint = 0; i < 100; i++)
{
btn = new Sprite();
btn.graphics.beginFill(Math.round(Math.random() * 0xFFFFFF));
btn.graphics.drawRect(0, 0, 50, 50);
btn.x = (i % 20) * 50;
btn.y = Math.floor(i/20) * 50;
// event listeners
btn.addEventListener(MouseEvent.CLICK, btnClick);
this.addChild(btn);
}
}
function btnClick (event:MouseEvent):void
{
var btn:Sprite = event.currentTarget as Sprite;
btn.graphics.clear();
btn.graphics.beginFill(Math.round(Math.random() * 0xFFFFFF));
btn.graphics.drawRect(0, 0, 50, 50);
}
在你可以加雪碧的子类,例如保持额外的公共标识或任何与它相同的方式。然后,您只需查看点击的点击事件即可。
工作很好,谢谢!我解决了我的问题,我试图通过实例名称来检查按钮,并使用“.name”设置实例名称,但根据一篇不适用于AS3的文章,我应该使用一个数组, ! 我更新了我的代码以反映你的一些情况,非常感谢,你指点我正确的方向! (文章有问题:http://www.calypso88.com/?p = 302) – sam 2010-02-03 16:27:31
是的,在AS3中,用实例名称放置舞台的对象更像是预先定义的变量,您可以访问。很高兴我能帮上忙 :) – poke 2010-02-03 17:10:53