我用这个小班,我做了一段时间后 - 这使得添加的听众成倍按钮更快,更容易和更清洁:
package
{
public class ButtonCollection extends Object
{
// current list
private var _clist:Array = [];
/**
* Merge instances of SimpleButton with listeners
* @param list A list of buttons and listeners to merge
*/
public function merge(...list):void
{
var i:Object;
for each(i in list)
{
i.button.addEventListener(i.event, i.callback);
_clist[_clist.length] = i;
}
}
/**
* Removes all previously added listeners
*/
public function clear():void
{
var i:Object;
for each(i in _clist)
{
i.button.removeEventListener(i.event, i.callback);
}
_clist = [];
}
}
}
用途:
这是我如何使用这个类来添加一些侦听器到我已经创建的两个按钮,实例名称为a和b。
var bc:ButtonCollection = new ButtonCollection();
bc.merge(
{button: a, event: MouseEvent.CLICK, callback: _click},
{button: b, event: MouseEvent.CLICK, callback: _click},
{button: b, event: MouseEvent.MOUSE_OVER, callback: _mouseOver}
);
function _click(e:MouseEvent):void
{
trace(e.target.name + " was clicked");
}
function _mouseOver(e:MouseEvent):void
{
trace(e.target.name + " was rolled over");
}
类也为您提供了一个容易的选择删除所有以前添加监听器当你完成:
bc.clear();
MYK,我会永远珍惜你的帮助一点,如果我想出解决办法它的工作原理 - 无论哪种方式,我仍然非常感激。我现在正在尝试将你的一小段代码与我的小小部分联系起来,没有任何运气,但是你的知识非常棒,你可以提供帮助! (因为至少我现在可以尝试更多不同的东西) – Arlene 2011-05-24 19:12:15
那么,什么是“instance160”?这只不过是你放在Flash中的舞台上的影片剪辑,并没有指定名称? – Myk 2011-05-24 19:21:48
所以我非常想做一个我认为是简单的校园地图。我做了一个传说,并且对于传说中的每个房间“buttonXXX”对应于房间/通道淡入的命名实例动画,所以我将所有我的小剪辑命名为“instanceXXX”中的房间,所以我不会“不会感到困惑。 – Arlene 2011-05-24 19:35:02