2016-01-22 63 views
-2

當前正在嘗試從AS2轉換爲AS3,並且深度管理存在一個小問題。我在舞臺上有幾個叫做(Window_1,Window_2,...,Window_N)的影片剪輯,它也有幾個子影片剪輯。操作記錄3:將Movieclip從Movieclip從舞臺移動到頂部

問題是,每個Window_X MovieClip都以相同的方式構建: Window_x - > UI_TopBar - > TopBar_MC。我試圖創建一個通用的解決方案,通過點擊TopBar_MC,整個Window_X MovieClip到達頂部。

有人知道我該怎麼做嗎?

非常感謝

回答

0

就叫stage.addChild(Window_N)。請參閱文檔:DisplayObjectContainer.addChild

向此DisplayObjectContainer實例添加一個DisplayObject子實例。該子項被添加到此DisplayObjectContainer實例中所有其他子項的前面(頂部)。

+0

感謝它的工作! –

+0

您給出的答案是正確的,但將用戶設置爲失敗的路徑(向舞臺添加任何內容都會導致嚴重的頭痛和失敗)。投票下來。 – BotMaster

+0

這是一個頗有爭議的陳述。這可能會或可能不會導致問題。如果你強烈地感覺到,這是不可避免的,這仍然是你自己的經驗和判斷力。正如問題所解釋的那樣:「我在舞臺上有幾個叫做**的影片剪輯......」改變這個事實需要相當多的工作和澄清,這將超出原始問題的範圍,但未能給出簡潔解決手頭的問題。 –

0

要移動的顯示對象到其父顯示列表的頂部:

object.parent.setChildIndex(object, object.parent.numChildren - 1); 

至於如何讓這個「通用」,您可以使用您鏈接到每個窗口符號類添加一個點擊處理程序到前端行爲的頂部欄:

class Window extends MovieClip { 
    public var topBar:MovieClip; 
    public function Window() { 
     topBar.addEventListener(MouseEvent.MOUSE_DOWN, topBarMouseDown); 
    } 
    private function topBarMouseDown(e:MouseEvent):void { 
     parent.setChildIndex(this, parent.numChildren - 1); 
    } 
} 
相關問題