简体   繁体   中英

loading child swf as3

I've been given an fla to make some changes too. Basically its a fairly long timeline animation with sound. So far I've successfully added a few button functions for sound etc.. but one has got me stumped.

One of the buttons needs to load a child swf. I'm using the code below but I'm recieving an error - 'Error #1009: Cannot access a property or method of a null object reference'. I believe this may be refferring to an object that isn't set yet but I have no idea which one it is:

Code:

var mcExt:MovieClip = new MovieClip();
var ldr:Loader = new Loader();
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, swfLoaded);
ldr.load(new URLRequest("Downloads.swf"));

function swfLoaded(e:Event):void {
mcExt = MovieClip(ldr.contentLoaderInfo.content);
ldr.contentLoaderInfo.removeEventListener(Event.COMPLETE, swfLoaded);
mcExt.x = 50;
mcExt.y = 50;
addChild(mcExt);
}

Any help on what is going wrong would be greatly appreciated!

Thanks

Rather than:

ldr.contentLoaderInfo.content

Try:

ldr.content

Hope that solves your problems!

Place

ldr.contentLoaderInfo.removeEventListener(Event.COMPLETE, swfLoaded);

at the end of your code, making it:

var mcExt:MovieClip = new MovieClip();
var ldr:Loader = new Loader();
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, swfLoaded);
ldr.load(new URLRequest("Downloads.swf"));

function swfLoaded(e:Event):void {
    mcExt = MovieClip(ldr.contentLoaderInfo.content);
    mcExt.x = 50;
    mcExt.y = 50;
    addChild(mcExt);
    ldr.contentLoaderInfo.removeEventListener(Event.COMPLETE, swfLoaded);
}

I believe that the position of your removeEventListener is what is messing up your code.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM