通过 URLRequest 传递变量

Pass variable via URLRequest

我在另一个 swf 中显示外部 swf。我阅读了 XML 保留外部 swf 路径的文件。在某些时候,我需要外部函数的结果。那么是否可以传递结果并通过 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 发送一个值

您肯定可以 "communicate" 在这两个文件之间。首先,loader.contentLoaderInfo.content 是您实际加载的 swf 文件。因此,您可以在其上调用方法 - 在分配的 class 或时间轴上(不好)。这样您就可以访问属性甚至函数:

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();

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