我有这段代码,假设在我的主文件(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()
我不知道如何解决它,或者要改变什么!
请帮助,我有点绝望。
答案 0 :(得分:0)
最好添加displayList
Loader
对象而不是contentLoaderInfo.content
。 Loader
本身就是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你有一个例子。