通过URLRequest传递变量

时间:2015-05-28 06:34:49

标签: xml actionscript-3 flash

我在其他swf中显示外部swf。我读取了保存外部swf路径的XML文件。在某些时候,我需要外部函数的结果。那么是否可以传递结果并通过URLRequest获取它?

以下是代码:

var contentLoader:Loader;
var context:LoaderContext = new LoaderContext();        
contentLoader = new Loader();       
contentLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, contentLoadingCompleteActions);
contentLoader.load(new URLRequest(url), context);
如前所述,

url来自XML解析器。我想加载swf并尽可能获取所选变量。

A(主要swf) - 通过URLRequest

导入swf

B(导入的swf) - 必须将值发送到A

1 个答案:

答案 0 :(得分:1)

您肯定可以在这两个文件之间进行“通信”。首先,loader.contentLoaderInfo.content是您实际加载的swf文件。所以你可以在它上面调用方法 - 在指定的类或时间轴上(不好)。这样您就可以访问属性甚至函数:

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, contentLoadingCompleteActions);
loader.load(new URLRequest(url), context);

function contentLoadingCompleteActions(event:Event) {
    // event.target is your loader
    var swf = event.target.content as MovieClip; // or even cast to document class!
    swf.getVariable(); // call method / get result
}

同样来自加载的swf - 它可以访问它的父 AFTER 它被添加到舞台(所以它可以有父):

var parentObject:MovieClip = parent.parent as MovieClip; // or cast to document class
parentObject.callParentMethod();

您可以转换为不同的类(Object,Class,无论您想要什么),以便在它们之间进行通信。