addChild()问题:AS3上的错误2007

时间:2015-12-30 17:03:42

标签: actionscript-3 flash

我有这段代码,假设在我的主文件(skeleton.fla)中添加swf文件(homePage.swf)。

代码:

var mcHome:MovieClip;

var newPage:Loader = new Loader();
newPage.load(new URLRequest("homePage.swf"));

newPage.contentLoaderInfo.addEventListener(Event.COMPLETE, homeLoaded);      

function homeLoaded(event:Event):void {

    mcHome = MovieClip(newPage.contentLoaderInfo.content);
    newPage.contentLoaderInfo.removeEventListener(Event.COMPLETE, homeLoaded);
    addChild(mcHome);  

}

我一直收到这个错误:

  

TypeError:错误#2007:参数child必须为非null。在   flash.display :: DisplayObjectContainer / addChild()at   skeleton_fla :: MainTimeline / homeLoaded()

我不知道如何解决它,或者要改变什么!

请帮助,我有点绝望。

1 个答案:

答案 0 :(得分:0)

最好添加displayList Loader对象而不是contentLoaderInfo.contentLoader本身就是DisplayObject。虽然在大多数环境中都可以访问MovieClip对象内部,但不需要访问Loader

  

如果您尝试加载驻留在其他域中的SWF,则可以将Loader对象添加到displayList,但如果您没有,则无法访问内容属性不要创建crossdomain.xml文件。

var newPage:Loader = new Loader();
newPage.load(new URLRequest("homePage.swf"));

newPage.contentLoaderInfo.addEventListener(Event.COMPLETE, homeLoaded);      

function homeLoaded(event:Event):void {

    newPage.contentLoaderInfo.removeEventListener(Event.COMPLETE, homeLoaded);

    addChild(newPage);  

}

Here你有一个例子。