2013-04-06 80 views
0

我有一個Flash遊戲,我有一個圖片被設計成文本框的提示和文本框裏面的相關文本,但文本框被圖像隱藏。任何人都知道如何製作,以確保文本框保持最佳狀態,或者我需要做的任何事情以防止這種情況發生?如何修復在AS3舞臺上的重疊對象

回答

3

使用setChildIndex肯定會工作,但是,我覺得不同的設計方法是你真正應該做的事情,除去對方回答頭痛。

例如,在比賽中我可能有不同的層,比如:

backgroundLayer 
gameLayer 
interfaceLayer 

那些3個雪碧層將被添加到該訂單的階段。然後,我會將顯示對象添加到適當的圖層。因此,我添加到backgroundLayer或gameLayer的任何東西總是會在interfaceLayer上的用戶界面後面。

這可以讓你不必擔心分層不斷。 setChildIndex的答案將解決那個時候的問題,但是如果其他東西被添加到容器中,它將重疊您的文本框,這是我不認爲你想要的。

這裏有一個例子:

var backgroundLayer:Sprite = new Sprite; 
var gameLayer:Sprite = new Sprite; 
var interfaceLayer:Sprite = new Sprite; 

addChild(backgroundLayer); 
addChild(gameLayer); 
addChild(interfaceLayer); 
現在

,無論你增加interfaceLayer,將永遠是物體的頂部,你添加到gameLayer或backgroundLayer。

因此,在您的文本框的情況下,只需將它添加到您的interfaceLayer和任何其他對象,你想要在它後面,你添加到gameLayer或backgroundLayer。

+0

你能澄清你的意思是從「精靈層」的實現角度? – avorum 2013-04-07 00:28:48

+0

Sprite是一個DisplayObject。所有DisplayObject都有一個顯示列表,您可以添加/刪除其他DisplayObject到/從。 – prototypical 2013-04-07 00:48:34

+0

用一個例子更新了答案。 – prototypical 2013-04-07 00:53:16

0

將顯示對象添加到顯示對象容器的順序會影響它們的z順序,換句話說就是前後順序。最後添加的顯示對象成爲最前面的。因此,顯示對象容器的子項的子索引對於重疊子項的繪製很重要。

如果你把圖片和文字上相同的DisplayObjectContainer如MovieClip:

讓我們說你的DisplayObjectContainer是MC。

而且你的文本框爲TXT

請試試這個:

mc.setChildIndex(txt, mc.numChildren-1);