[AS3] Zugriff auf Zeitleistenvariable aus Klasse heraus

Marius Heil

Erfahrenes Mitglied
Hallo,

AS3 bereitet mir noch einige Probleme ;-)
Ich besitze einen MovieClip von dem zur Laufzeit mehrere Instanzen auf der Bühne erzeugt werden. Der MovieClip hat mehrere Bilder, in jedem Bild steht eine andere Variablenzuweisung, zB:
materialID = 7;
Beim initialisieren des MovieClips hab ich darauf leider noch keinen Zugriff. Eine andere Möglicheit wäre, dass ich eine Funktion aufrufe setMaterialID(7);

Ich besitze nun eine Klasse die diese eben genannten MovieClip erweitert. In der kann ich die Funktion aber leider nicht definieren, da die Flash zur Compilierungszeit so nicht bekannt ist.
Ich hoffe man versteht einigermaßen worauf ich raus will ;-)
Am liebsten wäre mir eine Lösung ohne umständliche Listener, etc.

Viele Grüße
 
Beim initialisieren des MovieClips hab ich darauf leider noch keinen Zugriff.

Wieso nicht? Was musst du machen, damit du darauf Zugriff hast? Muss die Variable denn vorher definiert sein oder kannst du nicht einfach 'warten', bis du Zugriff hast?
 
In der kann ich die Funktion aber leider nicht definieren, da die Flash zur Compilierungszeit so nicht bekannt ist.

Und so...?

PHP:
package {
	import flash.display.MovieClip;
	import flash.events.Event;

	public class  MyMovieClip extends MovieClip{
	
		private var id:Number;
		
		public function MyMovieClip():void {
			this.addEventListener(Event.ADDED_TO_STAGE, onAdded);
		}
		
		public function onAdded():void {
			this.removeEventListener(Event.ADDED_TO_STAGE , onAdded);
		}
		
		
		public function setMaterialID(n:Number):void {
				id = n;
		}
		
	}
	
}

var m:MovieClip = MyMovieClip();
this.addChild(m);
m.setMaterialId(7);
 
@Jens: Das Problem ist, dass als als erstes das komplette Klassenscript läuft und erst danach der Zeitleistencode des hinzugefügten MovieClips. Warten ist natürlich eine Möglichkeit, aber einfach 1 Bild abwarten ist dann doch gepfuscht, da brauchts irgendein Callback. Mit dem was Denniz geschrieben hat werd ich es mal probieren.
@Denniz: ist das jetzt sozusagen der Ersatz für die von der Flash IDE generierte MovieClipklasse? Ich probier mein Glück mal, ich hatte nur bisher das Problem, dass Flash Probleme gemacht hat als ich die Klasse selbst bearbeiten wollte.
 
Hallo,

habe es zwar mit ADDED_TO_STAGE probiert, das wurde aber aus irgendeinem Grund nie ausgeführt, hab jetzt schlussendlich ENTER_FRAME genommen, das geht jetzt auch astrein.

Danke für die Hilfe.
 
Zurück