我在外部加载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()
答案 0 :(得分:2)
在game.fla的ActionScript设置面板中检查您的预加载器设置 - EM__Preloader__
看起来就像一个自动生成的类(并且不是您的主EM类)。
此外,您的EM类应该实现一个简单的接口,您可以将loader.content转换为(而不是MovieClip)。这样,您可以确保所需的方法可用,并且您的代码是类型安全的。将此接口嵌入到preloader.fla而不是EM类中,以防止SWF不必要的膨胀。
答案 1 :(得分:0)
原来我必须在SWF中嵌入所有代码(我在其中使用了一些TLF)