我在其他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
导入swfB(导入的swf) - 必须将值发送到A
答案 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,无论您想要什么),以便在它们之间进行通信。