无法访问加载的swf文件的方法

时间:2011-11-14 11:57:33

标签: actionscript-3

我似乎无法从加载的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只是一个空的影片剪辑实例,我已经创建并定位在舞台上以加载外部影片。

1 个答案:

答案 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);

但这只是猜测。