• Blackberry DevCon – Register Now!
Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-06-2010, 20:28   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2005
Beiträge: 14
getChildAt(0).addChild(my_loader) ?

Ich versuche gerade in einen Child mc einen loader zu packen. Der Instanzname ist dyn generiert, den weiß ich nicht, kann ihn aber abfragen. Aber dann komme ich nichtweiter

eigentlich will ich sowas:

myDisplayCard.getChildAt(0).addChild(my_loader);

oder über Umweg so:

var myInstanz:String = "myDisplayCard."+ myDisplayCard.getChildAt(0).name;
this[myInstanz].addChild(my_loader);

Komme da aber überhaupt nicht weiter. Hat jemand eine Idee, wie ich das machen soll.
Wolfi8 ist offline   Mit Zitat antworten
Alt 18-06-2010, 21:15   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 11.841
Ich würde dir davon abraten, mit der Array Notation zu arbeiten, wenn du es nicht musst. Zumal du Instanznamen und name Eigenschaft von DisplayObjects in einen Hut zu werfen scheinst. Es gibt verschiedene Ansätze, mit denen du fahren kannst:
  • ein Dictionary, um damit direkt auf die Zielkontainer zu zeigen
  • ein Array, um ähnlich zu arbeiten wie mit dem Dictionary
  • DisplayList Traversierung
Omega Psi ist offline   Mit Zitat antworten
Alt 20-06-2010, 18:32   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2005
Beiträge: 14
Danke erstmal. Mir war der Unterschied zwischen Instanzname und Name Eigenschaft so nicht ganz klar. Geholfen hat mir dieses Tut: Calypso88 Blog Archive AS2 to AS3: Dynamic instance names.

Ich komme trotzdem noch nicht ganz weiter. Es tun sich mir da mehrere Fragen auf.

Wenn ich so anlege:

var clips:Array = [];
for(i = 0; i < 5; i++){
var mc:MovieClip = new MovieClip();
mc.name = "mc" + i;
addChild(mc);
clips[i] = mc;
}

Was sind dann die Instanznamen von den mcs?

Ich habe jetzt zwei Dinge gemacht:
1. Meinem mc ein Name-Attribut manuell zugewiesen
2. ein Array angelegt, in dem das mc myInstanz abgelegt ist.

zu 1.
myDisplayCard.getChildByName("myInstanz").y=200;
geht jetzt
myDisplayCard.getChildByName("myInstanz").addChild (my_loader);
aber nicht

zu 2.
myDisplayCard.clips[1].y=200;??
clips[1].y=200;??
Geht beides nicht. Wie spreche ich das an?

myDisplayCard.addChild(my_loader);
Das funktioniert. myDisplayCard ist eine Instanz, die schon auf der Bühne abgelegt ist. myInstanz wurde per Skript erzeugt: var myInstanz = new (getDefinitionByName(button_arr[i].mcName) as Class)();
Wolfi8 ist offline   Mit Zitat antworten
Alt 20-06-2010, 19:25   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 11.841
Bitte den Code formatieren, dass macht es leichter, ihn zu lesen.

Instanznamen sind im Grunde genommen Konstrukte für die Flash IDE. In der Programmierung spricht man von Instanz Variablen, Felder... und es gibt je nach Programmiersprache noch mehr.

Zu deinen zwei Fragen: es macht immer Sinn die Fehlermeldungen dazu zu schreiben.
Code:
myDisplayCard.getChildByName("myInstanz").addChild (my_loader);
funktioniert nicht
Code:
DisplayObjectContainer(myDisplayCard.getChildByName("myInstanz")).addChild(my_loader);
sollte aber.

Zu 2: Die Referenzen stehen schon im Array:
Code:
if (clips.length > 0)
{
  clips[clips.length - 1].y=200;
}
Teste mal den Code.

Geändert von Omega Psi (20-06-2010 um 19:26 Uhr)
Omega Psi ist offline   Mit Zitat antworten
Alt 20-06-2010, 21:21   #5 (permalink)
Neuer User
 
Registriert seit: Jul 2005
Beiträge: 14
ja, danke. geht beides.

arrayindex war natürlich 0 und nicht eins.

DisplayObjectContainer geht auch nach import der klasse.

Aber warum brauche ich das bei
Code:
DisplayObjectContainer(myDisplayCard.getChildByName("myInstanz")).addChild(my_loader);
und bei
Code:
myDisplayCard.addChild(my_loader);
nicht?
Wolfi8 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Überprüfen ob my_loader Foto bereits enthält hightime ActionScript 3 26 31-05-2010 19:22
FDT getChildAt-bug? figure8 ActionScript 3 4 30-10-2009 15:15
Mc addChild uncle.sam ActionScript 3 4 22-10-2009 10:47
Prinzipfrage: getChildAt null9elf ActionScript 3 3 18-01-2008 11:00
addChild heyhey ActionScript 3 4 04-01-2008 17:57


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:42 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele