我們正在使用ActionScript 3.0通過Flash 5.5製作一款適用於手機的簡單Flash遊戲。我們垂直對齊一組對象,直到它們碰到舞臺頂部的另一個對象。我們用10個MovieClip動畫之一實例化數組中的每個元素。每個對象都有兩個事件監聽器;一個用於垂直動畫,另一個用於聽取鼠標點擊(將對象從舞臺上移除)。當一次有超過10個物體在舞臺上時,我們遇到了一個問題。問題是這些物體偶爾消失,沒有解釋。我們假設問題是由於某種類型的內存/垃圾收集問題。下面是我們代碼的一個小例子,它將MovieClip實例分派到舞臺上。AS3 - 舞臺上的物品無意中消失
function dispatch(e:TimerEvent):void{
if(count < srrayFinal.length)
{
addChild(sArrayFinal[count]);
sArrayFinal[count].x = randomNumberXtart();
sArrayFinal[count].addEventListener(Event.ENTER_FRAME, fl_AnimateVertically, false, 0, true);
sArrayFinal[count].addEventListener(MouseEvent.CLICK, taphandler, false, 0, true);
sArrayFinal[count].y = 480;
count++;
}
else
{
timer.stop();
timer.removeEventListener(TimerEvent.TIMER, dispatch);
timer = null;
}
}
爲了讓影片剪輯不會消失,我們可以做些什麼? 謝謝!
你沒有在這段代碼中顯示任何東西。你可以請更新並顯示更多的代碼,例如ENTER_FRAME和CLICK事件的回調,以及生成movieclip並放入數組的代碼。 – 2011-06-04 11:11:39
我認爲這個問題不是垃圾回收問題,當你在可視化樹上有一個DisplayObject(通過'addChild')時,它不會被收集。 – dain 2011-06-04 12:56:26
是否有機會將動畫片段添加到已在舞臺上的舞臺上?當發生這種情況時,動畫片段似乎消失並重新出現。只是一個想法。 – Ian 2011-06-04 16:53:29