Flash AS3 Loadmovie Fehler # 1009 - Externe AS-Datei - actionscript-3, flash

Wir haben ein Programm in Flash erstellt, das eine externe ActionScript-Datei verwendet.

Ich versuche, dieses SWF in einer anderen Flash-Datei zu laden / zu importieren, aber ich erhalte eine Fehlermeldung "Fehler # 1009: Zugriff auf eine Eigenschaft oder Methode einer Nullobjektverweis"

Ich weiß, dass dies eine Referenz in meiner externen .as-Datei ist, aber ich bin mir nicht sicher, wie ich das beheben soll

Dies ist mein Code zum Laden (und Skalieren) der swf

var ld:Loader = new Loader();
addChild(ld);
ld.load(new URLRequest("tatton.swf"));
ld.contentLoaderInfo.addEventListener(Event.COMPLETE,function(evt) {
var mc = evt.target.content;
mc.scaleX=0.7031;
mc.scaleY=0.7031;
});

Hat jemand Ideen?

Vielen Dank

Edit: Hier ist der vollständige Fehlercode: TypeError: Fehler # 1009: Kann nicht auf eine Eigenschaft oder Methode eines Nullobjektverweises zugreifen. in Tatton ()

Und unten ist mein .as-Dateicode:

package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.utils.setTimeout;
import flash.utils.clearTimeout;
import flash.utils.getDefinitionByName;

public class Tatton extends MovieClip
{
public var active_clip:MovieClip;
public var to:Number;

public function Tatton()
{
// Create empty vector of movieclips;
stage.addEventListener(MouseEvent.CLICK, reset_timeout);
init();
}

public function reset_timeout(e:Event = null)
{
clearTimeout(to);
// 3 mins
to = setTimeout(fire_timeout, 150 * 1000);
}

public function fire_timeout():void
{
// Reset the system (and run attractor) if we"re not on the attractor already.
if ( !(active_clip is Attractor))
{
init();
}
}

public function init()
{
// Reset globals
Globals.skip_menu_anim = false;
Globals.skip_staff_menu = false;

load_movie("Attractor");
reset_timeout();
}

public function load_movie(name:String):void
{
if (active_clip is MovieClip)
{
kill_active_movie();
}

active_clip = createInstance(name);
addChild(active_clip);
active_clip.startup();
}

public function kill_active_movie():void
{
active_clip.shutdown();
removeChild(active_clip);
active_clip = null;

}
public function createInstance(className:String):Object
{
var myClass:Class = getDefinitionByName(className) as Class;
var instance:Object = new myClass();
return instance;
}
}

}

Antworten:

1 für die Antwort № 1

Versuche dies

public function Tatton() {

addEventListener(Event.ADDED_TO_STAGE, stageAvailable);
}

private function stageAvailable(e:Event = null) {

removeEventListener(Event.ADDED_TO_STAGE, stageAvailable);

// Create empty vector of movieclips;
stage.addEventListener(MouseEvent.CLICK, reset_timeout);
init();
}

beziehen auf Dies Artikel, warum zu verstehen


0 für die Antwort № 2

Sie müssen den Ereignis-Listener hinzufügen, nachdem Sie Loader.load aufgerufen haben, da contentLoaderInfo null ist, bis load aufgerufen wird.


Am beliebtesten