2015-12-30 5 views
0

У меня есть этот фрагмент кода, который должен добавить файл swf (homePage.swf) внутри моего основного файла (skeleton.fla).addChild() issue: ошибка 2007 по AS3

Код:

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: Error #2007: Parameter child must be non-null. at flash.display::DisplayObjectContainer/addChild() at skeleton_fla::MainTimeline/homeLoaded()

Я не знаю, как решить эту проблему, или что нужно изменить!

Помогите пожалуйста, я немного в отчаянии.

+0

Убедитесь, что «homePage.swf» находится в том же каталоге, что и ваш skeleton.fla, и проверьте написание имени файла swf – kare

+0

. Да, это так. И имя одно и то же. – nuriaquero

+0

Попробуйте 'addChild (newPage);'. например, добавление загрузчика вместо содержимого загрузчика. Вы не получите полное событие, если swf не существует. Скорее всего, это проблема безопасности. – BadFeelingAboutThis

ответ

0

Лучше добавить в displayList объект Loader вместо его contentLoaderInfo.content. Loader является DisplayObject сам по себе. Нет необходимости обращаться к MovieClip внутри объекта Loader, хотя это возможно в большинстве сред.

If you try to load an SWF that resides in other domain, you could add the Loader object to the displayList but you can't access to the content property if you don't create a crossdomain.xml file.

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 вам пример.

+0

Рассмотрите возможность сделать ваш ответ более полезным, объяснив, почему загрузчик необходимо добавить вместо содержимого. – BadFeelingAboutThis

+0

Ok @BadFeelingAboutЭто, я постараюсь тренировать свой плохой английский;) – ElChiniNet

+0

Это на самом деле не так и не действительный ответ, несмотря на то, что он уже отмечен как принятый. Нет веских причин, по которым лучше добавить загрузчика, чем загружать контент. – BotMaster

Смежные вопросы