我有一個教育遊戲,孩子們聽到一個聲音,然後必須從3個圖像中選擇正確的圖像。AS3 CS5如何在SOUND_COMPLETE後刷新舞臺?
當他們想要再次聽到聲音時,可以按下揚聲器按鈕。 3個圖像是動態添加到舞臺的movieclip(名爲card1,card2和card3),其中buttonMode = true。
無論何時他們按下揚聲器再次聽到聲音,或者如果他們按錯了圖像時都會得到反饋,我會在聲音持續時間內從卡中刪除mouse_events。我還設置了buttonMode = false,這樣孩子們就知道在播放聲音時他們將無法點擊。
在SOUND_COMPLETE上,我再次添加eventListeners。現在buttonMode = true也是。
我想刷新屏幕,如event.updateAfterEvent();所以如果光標放在其中一張卡上,光標會變成一隻手。但是event.updateAfterEvent()不能附加到SOUND_COMPLETE,你只能在像MOUSE或GESTURE這樣的交互事件之後使用它。
tldr;我怎樣才能刷新我的舞臺,使光標在SOUND_COMPLETE後變回手?
Here's一些代碼:
function speakerClick(event:MouseEvent):void
{
remLst();
SoundMixer.stopAll();
cardCnl = gameSnd.play();
cardCnl.addEventListener(Event.SOUND_COMPLETE, sndComplete);
}
function sndComplete(event:Event):void
{
cardCnl.removeEventListener(Event.SOUND_COMPLETE, sndComplete);
addLst();
}
function addLst():void
{
for (var i:int = 1; i < 4; i++)
{
var card:Card = getChildByName("card" + i) as Card;
card.addEventListener(MouseEvent.CLICK, fnClick);
card.addEventListener(MouseEvent.MOUSE_OVER, fnOver);
card.addEventListener(MouseEvent.MOUSE_OUT, fnOut);
card.buttonMode = true;
}
}
完成刪除對象並將它們添加到舞臺上。這可能會解決你的探頭問題,而不是最好的,但可能有所幫助。 – ymutlu
如果下面的答案不起作用,我會提出你的建議。我的遊戲並不複雜,讓它工作比完善代碼更重要。然而,TheSHEEP提出了一個很好的答案,所以你可能想看看:) – silvith