2012-06-11 122 views
0

我對as3有點新,所以請原諒我,如果這些都是愚蠢的問題。兩個問題...編輯影片剪輯定義as3

前提條件: 我正在從swf文件中加載一個字符,並且想要爲其添加頭像。我讓他動畫散步,也站立(stand_mc,walk_mc)。我也有他的身體部分分離出來,所以在每個動畫mc的內部是一個head_mc,body_mc等等。

第一個問題,我如何訪問任何動畫的身體部位?這裏是我的代碼到目前爲止:

var WalkAnim:Class = SWFLoader.getClass('walk_mc'); //Using Greensock loader; but it's the same as using appDomain.getDefinition(); 
    var walkAnim:MovieClip = new WalkAnim(); 
    addChild(walkAnim); 

第二個問題,添加walkAnim只是創建一個mc定義的實例。我怎樣才能編輯庫中的定義做類似的事情。

var Hat:Class = SWFLoader.getClass('accessory_hat_mc'); 
    var hat = new Hat(); 
    WalkAnim:addChild(Hat)//??? 

因此,如果我在舞臺上有多個實例,它們都將被更新。先謝謝您的幫助!

回答

0

基本上,要訪問子元素,可以使用點語法。這看起來像這樣(最後一行):

var WalkAnim:Class = SWFLoader.getClass('walk_mc'); 
var walkAnim:WalkAnim = new WalkAnim(); // I have typed your var as WalkAnim, not MovieClip. 
addChild(walkAnim); 
walkAnim.head_mc.rotation += 5; 

要回答你的第二個問題,你將無法在運行時編輯定義。您可以向每個實例添加項目:

var Hat:Class = SWFLoader.getClass('accessory_hat_mc'); 
var myHat:Hat = new Hat(); 
walkAnim.head_mc.addChild(myHat); 
+0

謝謝!我使用點符號,但由於某些原因,我只能看到一些零件。我看到頭部和腿部,但沒有身體。在我的閃存庫中,一切看起來都一樣。 –

+0

您是否確定沒有拼寫錯誤,缺少鏈接或其中一些不是影片剪輯? – poepje

+0

想通了,我必須爲每個部分分配一個實例名稱......實例名稱,AS鏈接和mc名稱(全部在Flash中分配)之間的差異並不完全清楚。 –