2011-04-01 123 views
0

也許有些東西我不明白精靈的特質,但爲什麼這個追蹤是未定義的? item是一個影片剪輯,businessCard是一個包含影片剪輯的精靈。無法追蹤精靈的孩子

item.addChild (businessCard);// 
trace (item.businessCard);// 
+0

,可能有很多原因。你有沒有嘗試追蹤商務卡?如果那個未定義,那麼將另一個變量設置爲相同的值自然會得到相同的結果。 – Bartvbl 2011-04-01 14:38:23

回答

2

動畫片段是動態的,因此您可以使用點符號創建和訪問屬性。 精靈不是動態的。 要到孩子的引用,你要訪問這樣的項目:

trace(item.getChildByName("businessCard").name)//traces => businessCard 

[編輯]我認爲精靈的businesscard的名字是「的businesscard」。

+0

此迴應增加了混淆。在OP的例子中,businessCard是一個變量名稱,一個Sprite引用。你的代碼假設這個Sprite的name屬性設置爲「businessCard」,這不是一個安全的假設。 – 2011-04-01 20:20:58

+0

當然,我認爲精靈的名字和變量名一樣。我應該注意到你需要實際的名字。即使你的方法簽名是相當明確的... – goliatone 2011-04-01 22:10:41

+0

其實,它似乎仍然比猜測它的索引更好。 – goliatone 2011-04-01 22:15:57

1

businessCard是項目的子項目,而不是屬性。你不能用點符號來訪問它。你必須使用像item.getChildAt(0);

0

我會做一類是這樣的:

package 
{ 
    import flash.display.Sprite; 

    public dynamic class FlexSprite extends Sprite 
    { 
     public function FlexSprite() 
     { 
     } 
    } 
} 

,比你的代碼:

var item:FlexSprite = new FlexSprite(); 

//Extra Code 
trace(item.bussinesCard);