2016-04-03 5 views
1

Ich habe gerade einen Weg gefunden, es zu tun, aber ich bekomme immer noch einen Fehler.as3 Der Zugriff auf eine Haupt-Timeline-Variable aus einem Movieclip heraus

Auf dem Haupt-Timeline ich habe:

var onBeat:Boolean = new Boolean; 

und in einem Movieclip ich versuche, darauf zuzugreifen mit:

MovieClip(root).onBeat = true; 

und es funktioniert technisch gesehen, die Variable ändert. Aber es wirft diesen Fehler, die Probleme verursacht:

Error # 1034: Typ Coercion fehlgeschlagen: nicht flash.display :: Bühne @ 7fffaa2c0d1 zu flash.display.MovieClip konvertieren.

Ist das nur eine unmögliche Aufgabe?

+0

Was ist 'root'? Wie definierst du es? Wo definierst du es? – DodgerThud

+0

Ich dachte, root bezog sich nur auf die Eltern der höchsten Ebene. Die Hauptbühne in diesem Fall. Soll ich es irgendwo definieren? – Galbert

+1

Wie füge ich deinen "inside MovieClip" hinzu? 'this.stage.addChild (insideMc);' oder 'this.addChild (insideMc);'? –

Antwort

0

Sie haben diesen Fehler erhalten, weil Sie Ihren MovieClip zur Anzeigeliste der Bühne und nicht zur Hauptzeitleiste hinzugefügt haben.

In Ihrem Haupt-Timeline-Code (oder Ihrer Dokumentklasse) können Sie Ihren MovieClip mit addChild(your_mc_instance) oder this.addChild(your_mc_instance) hinzufügen.

Sie können aber auch einen funktionierenden Code auch mit Movieclip-Instanz hinzugefügt beispielsweise auf die Bühne verwenden, erhalten:

var _root:DisplayObjectContainer = DisplayObjectContainer(root); 
MovieClip(_root.getChildAt(0)).onBeat = true; 

_root.getChildAt(0) hier ist Ihre Haupt-Timeline-Instanz zurückkehrt, wie es auch auf der Bühne hinzugefügt wurde Liste vor jedem anderen Objekt anzeigen.

Hoffe, dass kann helfen.

Verwandte Themen