AS3加载外部swf资源库中的元件(MovieClip),使用场景:加载远程服务器的资源,多用于产品化业务。
外部资源库的元件给出AS连接,用于在代码中反射,下面伪代码中体现为 “mc_link”。
以下是伪代码:
/**
* @p_url 外部资源库的url地址
* @p_complete 加载完成的回调函数
*/
public function loadAsset(p_url:String,p_complete:Function):void
{
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, p_complete);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError);
//处理可能的跨域问题
var context:LoaderContext=new LoaderContext();
context.applicationDomain=ApplicationDomain.currentDomain;
context.securityDomain=SecurityDomain.currentDomain;
loader.load(new URLRequest(p_url), context);
}
public function loadComplete(e:Event):void
{
if(!e.currentTarget.applicationDomain.hasDefinition("mc_link"))
return;//资源不存在
var loadMc:Class = e.currentTarget.applicationDomain.getDefinition("mc_link") as Class;//key code
var mc:MovieClip = new loadMc();
addChild(mc);
}