获取类定义

来源:互联网 发布:json数组转json字符串 编辑:程序博客网 时间:2024/06/05 08:12

private var domain:ApplicationDomain;private function loadMaterial(path:String):void{var loader:Loader = new Loader();loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoadComplete);loader.load(new URLRequest(path));}private function onLoadComplete(e:Event):void{domain = e.target.applicationDomain as ApplicationDomain;}private function getClassByName(name:String):Class{if(domain && domain.hasDefinition(name))return domain.getDefinition(name) as Class;elsereturn null;}private function test():void{var cls:Class = getClassByName("yourName");var dis:DisplayObject = new cls() as DisplayObject;addChild(dis);}


像上面那样,加载外部资源并获取类定义之后,就可以使用new关键字实例化一个对象了。

还可以使用getDefinitionByName()获取

loader.load()       new LoaderContext(false, ApplicationDomain.currentDomain)

这里要特别注意程序域和安全域。不懂的看下面这篇文章:

http://www.senocular.com/flash/tutorials/contentdomains/