如何将变量从.swf文件传递到.as文件?

时间:2011-11-01 09:04:30

标签: flash actionscript-3

我在.as中有一个main。我在.as中加载.swf。工作正常,现在我想要从.swf获取变量并将其传递给.as。我怎样才能做到这一点?请。救命! 我的.swf文件编码

function formatMessage(chatData:Object)
{
var number:uint = chatData.user;
trace(chatData.user);
}
private function addText()
    {
_loader = new Loader();
_loader.x=10;
_loader.y=200;
_loader.load(new URLRequest("receive.swf"));//Here i Can Load the Swf.Here how Can i acces  the Variable of number ?
 addChild(_loader);
    }

2 个答案:

答案 0 :(得分:1)

首先要记住的是,这不适用于ActionScript VM版本。意思是只有AVM2和AVM2可以进行通信(AVM1之间可以进行通信,但需要更多的聪明才智)。

将完成事件侦听器添加到名为_loader.contentLoaderInfo

onLoad属性中
_loader.x=10;
_loader.y=200;
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoad);

现在使用onLoad函数将需要提取已加载的内容并进行一些转换。

function onLoad(evt:Event):void {
    var target:DisplayObject = LoaderInfo(evt.target).content as DisplayObject; // cast as DisplayObject
    trace("readMe = ", target["your_variable"]); // trace output "your_variable"
}

有更简洁的方法可以完成此操作,但这样可以从嵌套的SWF中提取值。

答案 1 :(得分:0)

的DisplayObjectContainer(_loader.content).getChildByName( “someName”);

someName变量必须是公共的,在主时间线或主文件中声明。