2011-08-09 79 views
0

我是新來的動作3,我試圖去做一些簡單的事情,比如在其他動畫片段中設置變量......所以,假設我在根/舞臺上有一個「蘋果」動畫片段,而我想要訪問根目錄或其他影片剪輯中的其他變量。我會怎麼做?在ActionScript 2,我會使用類似在actionscript 3中,如何訪問其他動畫片段中的變量?

_root.thisVar = 1; 
_parent.thisVar = 1; 

,並與其它影片剪輯,我會用

_root.apple2.thisVar = 1; 
_parent.apple2.thisVar = 1; 

我很困惑,因爲從舞臺上,我可以訪問其他內的所有變量和函數在舞臺上的動畫片段,但我不能在相反的方向去..反正,任何幫助將不勝感激,謝謝。

回答

0

最好是將所有操作放置在舞臺級的一個關鍵幀上。通過這種方式,當你試圖定位一個變量時,你不需要擔心你的顯示列表將目標鎖定在舞臺的根部。在AS2中,將動作直接放在MovieClip上有時是很常見的,但這種做法在AS3中不再可行,原因很多。

一些其他的事情要注意:在AS3中,你現在引用父對象而不是'_parent';只有影片剪輯可以具有動態屬性,除非您繼承Sprite並創建自己的類。

+0

嗨,謝謝你的回答,但我不太清楚你的意思。我的意思是,例如......假設我在屏幕上有三個敵人,他們每個人都做不同的事情。一個在y方向移動,另一個在x方向移動,第三個跟隨玩家並隨機向他射擊。在AS2中,我將擁有3個不同的影片剪輯,每個影片剪輯都有自己的onEnterFrame函數代碼。 但是在AS3中,你是說我應該擁有根目錄上的所有代碼?所以我會有enemy1.y + = enemy1.ySpeed;敵人2等等? – Bao

+0

是的,我會創建一個Event.ENTER_FRAME並在該函數中執行您的遊戲邏輯。所以,你可以粗略地做這樣的事情: 'code' stage.addEventListener(Event.ENTER_FRAME,loop); 函數循環(e:Event):void { updateEnemy1(); updateEnemy2(); updateEnemy3(); } '代碼' –

+0

好吧,很酷,謝謝你的回答。我會將問題留在幾個小時內,以防其他人想要參加:) – Bao

相關問題