我用這個小班,我做了一段時間後 - 這使得添加的聽衆成倍按鈕更快,更容易和更清潔:
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