2012-12-11 28 views
0

我有一個叫做導航欄的MovieClip,它上面有按鈕。如何將按鈕連接到MovieClip,以便當MovieClip移動時按鈕隨其一起移動?我已經能夠使導航欄可拖動,但按鈕不會隨之拖動。移動MovieClip和它包含的所有內容

我曾嘗試以下:

navbar.addChild(button1); 

這剛纔的按鈕消失。

回答

1

您的方法是正確的:將按鈕作爲孩子添加到MovieClip將允許它們全部作爲一個項目移動。

按鈕消失可能有許多原因,例如現在x和y相對於新父母(即將按鈕y設置爲600現在距離導航欄600像素,而不是從舞臺或老父母開始)。

嘗試註釋掉您在按鈕上設置的任何屬性,看看是否解決了問題,從那裏您可以確定哪個屬性導致按鈕消失。

所以,你應該基本上是有這樣的事情:

var button1:Button = new Button(); 
navbar.addChild(button1); 

如果連與最少的代碼不會顯示在導航欄的按鈕造成的,你需要發佈更多的代碼,以便我們可以查看問題發生的位置。

1

正如你所想的那樣,如果你想navbar和按鈕的行爲像一個獨特的元素,你需要把按鈕放在navbar而不僅僅是它。

按鈕消失的原因是因爲它已放置在Designer的舞臺上,所以當您將其添加到navbar時,您將它添加到兩個不同的顯示堆棧中,這是不允許的。

你應該把按鈕navbar裏面設計或動態導出它們的AS,然後例如它們,如下:

var btn:Button1 = new Button1() 
navbar.addChild(btn) 

類名Button1影片剪輯屬性窗口分配圖書館,在下導出爲ActionScript

+0

你能解釋一下我在Designer的'navbar'中放置按鈕嗎? – PriestVallon

+0

只需雙擊舞臺上的導航欄實例(或在庫中)即可。您開始MovieClip編輯模式,現在只需將您的按鈕添加到導航欄。 – Teejay

+0

(謝謝你的語法修復) – Teejay

1

你可以從影片剪輯的X,Y按鈕來計算距離,你可以寫這樣的代碼:

var diff1:int = navbar.x - example_button1.x; 
    stage.addEventListener(Event.ENTER_FRAME, function(event:Event):void{ 
example_button1.x=navbar.x-diff1; 
    }); 

您可以複製example_buttons和差異變量。

,或者你可以startDrag()的Sametime與同一事件偵聽器,

navbar.addEventListener(someEvent.some, function(event:someEvent):void{ 
MovieClip(root).navbar.startDrag(); 
MovieClip(root).example_button1.startDrag(); 
}); 

MovieClip(root)允許你進行正式階段。例如,使用此屬性可以從導航欄內部生成一個對象。

相關問題