我们正在使用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