Dynamische Instanzennamen

artpiru

Grünschnabel
Hallo Ihrs,

als blutiger Anfänger in AS3 habe ich eine (hoffentlich nicht allzu dilettantische) Frage zu einem Script.
Ich möchte gern einen MovieClip erstellen mit dynamisch erzeugten Instanzennamen (wenn man das so sagt). Dazu empfiehlt sich wohl getDefinitionByName. Ich habe mir also verschiedene Hilfen erGoogelt und habe dann daraus folgendes Skript erstellt:

PHP:
function buildElement( Name:String, Xpos:Number, Ypos:Number, Text:String ):void 
    {
       var tMC:Class = getDefinitionByName(Name) as Class;
       var mc:MovieClip = new tMC() as MovieClip;
      mc.name = Name;
       mc.x = Xpos;
       mc.y = Ypos;
   
    var Nav2Text:TextField = new TextField();
    Nav2Text.autoSize = TextFieldAutoSize.LEFT;
    Nav2Text.text = Text;
    mc.buttonMode=true;
    mc.mouseChildren = false;
     addChild( mc );
    mc.addChild(Nav2Text);
}
buildElement("TestName",100,100, "HAlloWorld");

Es erscheint zwar keine Fehlermeldung, aber auf dem Ausgabebildschirm kommt leider auch kein Text :-( Woran kann das liegen?

Und die zweite Frage: Gibt es eine Möglichkeit, den MC ausserhalb der Funktion anzusprechen?
 
Hi,

ich hab diesmal getestet und ich muss sagen es Funktioniert wunderbar. Kann es sein das deine Klasse die du versuchst zu laden nicht von der Klasse MovieClip oder deren Subklassen erbt?

Sonst kannst du es auch mal so Probieren:

Code:
function buildElement( pName : String, pX : Number, pY : Number, pText : String ) : void {
				var mc : MovieClip= MovieClip(new (Class(getDefinitionByName(pName))));
				mc.name = pName;
				mc.x = pX;
				mc.y = pY;

				var nav2Text : TextField = new TextField();
				nav2Text.autoSize = TextFieldAutoSize.LEFT;
				nav2Text.text = pText;
				mc.buttonMode = true;
				mc.mouseChildren = false;
				mc.addChild(nav2Text);
				addChild(mc);
			}

Den mc kannst du ansprechen mit getChildByName();

Nebenbei, versuche die Parameter immer klein zu schreiben. ich persönlich mach oft ein p für Parameter davor damit man besser den Überblick behält für was welche Variable ist.
 
Danke erstmal für die Antwort. Da das Projekt aber fertig werden muss, habe ich mich für eine 'schmutzige' Lösung entschieden.
Sobald ich wieder Luft habe (und hoffentlich noch was dazugelernt habe) werde ich das mal probieren...

cu
 
Zurück