2013-02-13 29 views
0

我做了一個函數,它會使用從xml創建的變量從我的庫中添加一個子項。AS3使用addChild()和從XML獲取的變量

var ChosenGraphic:String = units.unit.(@titel==k1).graphic; 
var mc:MovieClip = new ChosenGraphic; 
addChild(mc); 

我知道我不能使用:字符串爲此,但我不知道如何使用。我試圖讓它現在工作2個小時,並且變得非常令人沮喪。 其他一切正常,我測試過了。

+0

字符串是您嘗試實例化的MovieClip的類名稱嗎?如果不是,字符串代表什麼? – 2013-02-13 17:00:32

+0

是的,我不知道該放什麼 – user2069179 2013-02-13 17:03:47

回答

0

您想使用getDefinitionByName()頂級功能。

下面是使用它的一個例子,它從我鏈接到的文檔中直接提取。請注意,類名稱字符串必須是完全限定的類名稱(即:它包括包名稱以及類)。

package { 
    import flash.display.DisplayObject; 
    import flash.display.Sprite; 
    import flash.utils.getDefinitionByName; 

    public class GetDefinitionByNameExample extends Sprite { 
     private var bgColor:uint = 0xFFCC00; 
     private var size:uint = 80; 

     public function GetDefinitionByNameExample() { 
      var ClassReference:Class = getDefinitionByName("flash.display.Sprite") as Class; 
      var instance:Object = new ClassReference(); 
      instance.graphics.beginFill(bgColor); 
      instance.graphics.drawRect(0, 0, size, size); 
      instance.graphics.endFill(); 
      addChild(DisplayObject(instance)); 
     } 
    } 
} 
+0

好的,謝謝你的幫助,沒想到我必須經歷這一切麻煩才能做到這一點。但我仍然有這個問題,我可能做錯了什麼。 'var k2:String = units.unit。(@ titel == k1).graphic; \t var kClass:Class = getDefinitionByName(k2)as Class; \t var tempadd:MovieClip = new kClass(); \t addChild(tempadd); ' 這給我回:錯誤#1065:變量未定義 – user2069179 2013-02-13 18:00:16

+0

Nvm,我得到它的工作,我打電話給MC的東西是錯誤的。非常感謝你! – user2069179 2013-02-14 13:58:15