我正在構建一個遊戲,其中界面是要在屏幕上加載的第一個項目之一。聲音按鈕,暫停和所有位 -Actionscript中的Movieclip堆棧
在比賽期間 - 所有莊園的東西都動態添加並移除到舞臺上。因此,我的界面落後於我的遊戲場景。
如何確保動畫片段始終保持在最佳狀態?
我可以重寫我的文檔類的addChild,並且每次添加新的子項時,我都會將界面重新封裝到頂部?
我正在構建一個遊戲,其中界面是要在屏幕上加載的第一個項目之一。聲音按鈕,暫停和所有位 -Actionscript中的Movieclip堆棧
在比賽期間 - 所有莊園的東西都動態添加並移除到舞臺上。因此,我的界面落後於我的遊戲場景。
如何確保動畫片段始終保持在最佳狀態?
我可以重寫我的文檔類的addChild,並且每次添加新的子項時,我都會將界面重新封裝到頂部?
您可以使用setChildIndex重新排列已包含在MovieClip或Sprite中的對象。舉例來說,如果你有一個名爲容器一個對象,其中包含一個redBall,藍色圓球等諸多球對象,可以使用下列步驟來確保redBall是一切的背後:
container.setChildIndex(redBall, 0);
同樣可以使確保藍色圓球將顯示盈一切使用:
container.setChildIndex(blueBall, container.numChildren-1);
addChildAt
將整理出來你添加的孩子直接進入他們的正確位置和setChildIndex將讓你重新定位對象已經放置。希望有所幫助。
得不
查看addChildAt,它允許您指定新對象應該添加的索引。
一個好的策略是保持在一個父雪碧/ MovieClip的所有界面元素,而在另一場比賽的所有資產。 (使用頂部的接口)
隨着你的傢伙建議我做了這個,很明顯,如果你在屏幕上已經的addChild一個對象,它只是reindex'd頂端。這看起來好嗎?
private var topLevelChildrenArray:Array = [];
public function addTopLevelChild(child:DisplayObject):DisplayObject
{
topLevelChildrenArray.push(child)
return this.addChildAt(child, this.numChildren - 1);
}
override public function addChild(child:DisplayObject):DisplayObject
{
this.addChildAt(child, this.numChildren);
for each(var topChild:DisplayObject in topLevelChildrenArray)
{
super.addChild(topChild);
}
return child
}
Sweet。That's uber helpful。 – Glycerine 2010-03-31 18:23:36
沒問題,很高興幫助:) – debu 2010-03-31 18:49:34