访问加载的swf的变量

时间:2011-12-13 14:48:50

标签: actionscript-3 flash

我在外部加载swf。我需要访问它的方法和变量。这是我正在使用的代码:

import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.display.MovieClip;

var loader:Loader;
var req:URLRequest = new URLRequest("aaa.swf");
var mc:MovieClip;

createLoader();

function createLoader():void    {
    loader = new Loader();
    loader.contentLoaderInfo.addEventListener(Event.INIT, onSWFLoad);
    loader.load(req);
}

function onSWFLoad(e:Event):void    {
    mc = MovieClip(loader.content);
    addChild(mc);
    trace(loader.content)
}

EM加载了SWF的文档类。如果被询问是否公开声明变量gameEnded,答案是肯定的。游戏加载,但调用变量时出错:

ReferenceError: Error #1069: Property gameEnded not found on EM__Preloader__ and there is no default value.
    at main_fla::MainTimeline/onSWFLoad()

2 个答案:

答案 0 :(得分:2)

在game.fla的ActionScript设置面板中检查您的预加载器设置 - EM__Preloader__看起来就像一个自动生成的类(并且不是您的主EM类)。

此外,您的EM类应该实现一个简单的接口,您可以将loader.content转换为(而不是MovieClip)。这样,您可以确保所需的方法可用,并且您的代码是类型安全的。将此接口嵌入到preloader.fla而不是EM类中,以防止SWF不必要的膨胀。

答案 1 :(得分:0)

原来我必须在SWF中嵌入所有代码(我在其中使用了一些TLF)