我似乎无法从加载的swf文件中访问任何内容。但是,我可以从加载的swf文件中访问父变量/方法。
var ldr:ProLoader;
function loadExternalSWF():void {
ldr = new ProLoader();
ldr.load(new URLRequest("introAS3.swf"));
wrapperMC.addChild(ldr);
}
loadExternalSWF();
buttonNextMC.addEventListener(MouseEvent.CLICK, buttonNextMC_Click);
function buttonNextMC_Click(event:MouseEvent):void {
MovieClip(wrapperMC).ldr.gotoAndPlay(31);
}
这只是给我错误:
TypeError: Error #1010: A term is undefined and has no properties.
编辑:wrapperMC只是一个空的影片剪辑实例,我已经创建并定位在舞台上以加载外部影片。
答案 0 :(得分:1)
为什么wrapperMC
有一个名为“ldr”的属性?你可以选择:
function loadExternalSWF():void {
ldr = new ProLoader();
ldr.load(new URLRequest("introAS3.swf"));
ldr.name = "ldr";
wrapperMC.addChild(ldr);
}
function buttonNextMC_Click(event:MouseEvent):void {
MovieClip(MovieClip(wrapperMC).getChildByName("ldr")).gotoAndPlay(31);
}
另一方面,加载的剪辑不太可能取代您的ProLoader对象,而是将其添加到自己的子集合中。在这种情况下,您必须让装载者孩子拨打gotoAndPlay()
。
如果不了解ProLoader的工作方式,我假设你有以下子结构
wrapperMC - > ldr - > introAS3
所以你可以选择:
MovieClip(DisplayObjectContainer(wrapperMC.getChildAt(0)).getChildAt(0)).gotoAndPlay(31);
但这只是猜测。