我有一個叫做導航欄的MovieClip,它上面有按鈕。如何將按鈕連接到MovieClip,以便當MovieClip移動時按鈕隨其一起移動?我已經能夠使導航欄可拖動,但按鈕不會隨之拖動。移動MovieClip和它包含的所有內容
我曾嘗試以下:
navbar.addChild(button1);
這剛纔的按鈕消失。
我有一個叫做導航欄的MovieClip,它上面有按鈕。如何將按鈕連接到MovieClip,以便當MovieClip移動時按鈕隨其一起移動?我已經能夠使導航欄可拖動,但按鈕不會隨之拖動。移動MovieClip和它包含的所有內容
我曾嘗試以下:
navbar.addChild(button1);
這剛纔的按鈕消失。
您的方法是正確的:將按鈕作爲孩子添加到MovieClip將允許它們全部作爲一個項目移動。
按鈕消失可能有許多原因,例如現在x和y相對於新父母(即將按鈕y設置爲600現在距離導航欄600像素,而不是從舞臺或老父母開始)。
嘗試註釋掉您在按鈕上設置的任何屬性,看看是否解決了問題,從那裏您可以確定哪個屬性導致按鈕消失。
所以,你應該基本上是有這樣的事情:
var button1:Button = new Button();
navbar.addChild(button1);
如果連與最少的代碼不會顯示在導航欄的按鈕造成的,你需要發佈更多的代碼,以便我們可以查看問題發生的位置。
正如你所想的那樣,如果你想navbar
和按鈕的行爲像一個獨特的元素,你需要把按鈕放在navbar
而不僅僅是它。
按鈕消失的原因是因爲它已放置在Designer的舞臺上,所以當您將其添加到navbar
時,您將它添加到兩個不同的顯示堆棧中,這是不允許的。
你應該把按鈕navbar
裏面設計或動態導出它們的AS,然後例如它們,如下:
var btn:Button1 = new Button1()
navbar.addChild(btn)
類名Button1
在影片剪輯屬性窗口分配圖書館,在下導出爲ActionScript。
你可以從影片剪輯的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)
允許你進行正式階段。例如,使用此屬性可以從導航欄內部生成一個對象。
你能解釋一下我在Designer的'navbar'中放置按鈕嗎? – PriestVallon
只需雙擊舞臺上的導航欄實例(或在庫中)即可。您開始MovieClip編輯模式,現在只需將您的按鈕添加到導航欄。 – Teejay
(謝謝你的語法修復) – Teejay