Actionscript 3 访问嵌入式SWF中的变量?
我正在编写一个AS3应用程序,将一个外部SWF文件加载到舞台上的电影剪辑中。我需要读取嵌入SWF中的一个变量。我想我可能可以通过Actionscript 3 访问嵌入式SWF中的变量?,actionscript-3,flash,Actionscript 3,Flash,我正在编写一个AS3应用程序,将一个外部SWF文件加载到舞台上的电影剪辑中。我需要读取嵌入SWF中的一个变量。我想我可能可以通过bgURL实现这一点,但我不知道如何实现 如何读取嵌入SWF中的变量 var bgLoader:Loader = new Loader(); var bgURL:URLRequest = new URLRequest("file.swf"); bgLoader.load(bgURL); addChild(bgLoader); 这类似于跟踪(MovieClip(bgL
bgURL
实现这一点,但我不知道如何实现
如何读取嵌入SWF中的变量
var bgLoader:Loader = new Loader();
var bgURL:URLRequest = new URLRequest("file.swf");
bgLoader.load(bgURL);
addChild(bgLoader);
这类似于跟踪(MovieClip(bgLoader.content.Player.played)代码>,但请确保访问事件中的内容。完整处理程序:
bgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,bgLoaded);
function bgLoaded(event:Event):void{ trace(MovieClip(bgLoader.content).Player.played) }
bgLoader.content返回一个DisplayObject,但您需要以MovieClip的形式访问内容。要做到这一点,请使用
这是假设您的外部swf也是AS3(good point Teo.sk!)
此位:\u root.Player.played
看起来像AS2。很遗憾,您无法访问
变量直接形成加载的AS2电影。
尽管如此,您仍然可以使用类在变量之间来回发送变量
AS2和AS3。幸运的是,格兰特·斯金纳编写了一个很好的小实用程序,名为
要简化此操作,取决于变量相对于file.swf的位置。例如,如果file.swf的顶层有一个变量
myVar
(将其视为全局变量),您应该能够执行如下操作:trace(MovieClip(bgLoader.content).myVar)代码>swf完全加载后,编辑实际上有几层深。如果加载的MovieClip被命名为“top”,我将如何访问它:trace(top.\u root.Player.played);我不太明白你对MovieClip做了什么,“MovieClip(obj).varName”是什么意思?外部swf也是AS3吗?仅供参考:你的问题是关于被拒绝的编辑。这就是为什么它比通常情况下受到更多关注的原因。我刚刚发现嵌入式swf是AS2。你确定我不能访问变量吗?因为,当我在我的C#Windows应用程序中嵌入同一个swf时,我可以访问它的变量。我很确定你不能从加载它的as3 swf访问as2变量。as2 swf作为as3中的一个实例运行,该实例受到限制,以便并排运行AVM1(as1和2 swf)和AVM2(as3 swf)。我不知道你可以从C应用程序中访问变量,这很酷。