我在.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);
}
答案 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变量必须是公共的,在主时间线或主文件中声明。