实际应用中, Loader加载子swf时是否需要指定新的应用程序域ApplicationDomain,需要择情况而定。
1、当加载的子swf中有流存在时,比如视频或者声音,则最好需要指定新的应用程序域ApplicationDomain,如果没有指定,调用_ldr.unloadAndStop();时无法将子swf中的流从内存中卸载掉,了解原因,请深入了解应用程序域ApplicationDomain,代码如下:
var ldr:Loader = new Loader(); var context:LoaderContext = new LoaderContext(); context.applicationDomain = new ApplicationDomain(); ldr.load(new URLRequest("子swf地址"),context);
2、当加载的子swf中不存在流,但需要用自定义事件和其他swf通信时,就不能指定新的应用程序域,一旦指定,即子swf存在自己的程序域,则无法与其他swf(包括父级swf)通过自定义事件进行通信。
var ldr:Loader = new Loader(); var context:LoaderContext = new LoaderContext(); context.applicationDomain = ApplicationDomain.currentDomain; ldr.load(new URLRequest("子swf地址"),context); //ldr.load(new URLRequest("子swf地址"));
时间: 2024-10-06 17:22:54