反射 swf里的类
2009年11月02日
用反射的方式获得swf文件中的类:
1.在swf中,export for actionscript 和export in form 1 勾起来。
2.加载时必须注意程序域
例子:加载swf->获取库里的声音->播放声
private var loadee:Loader;
private function ini():void
{
loadee=new Loader();
loadee.contentLoaderInfo.addEventListener(Event.COMPLETE,oncomplete);
//loadee.load(new URLRequest("soundtest.swf"));//如果这样写是不行的。反射不到类
loadee.load(new URLRequest("soundtest.swf"),new LoaderContext(false,ApplicationDomain.currentDomain));
}
private function oncomplete(e:Event):void
{
var sc:Class= (getDefinitionByName("box_notify.mp3") as Class);//关健是这一句 反射出一个名字是box_notify.mp3的类,也就是swf库里的链接名。
var sp:Object=new sc();
trace (describeType (sp));//显示类的信息,没什么用。
(sp as Sound).play();
}
2009年11月02日
用反射的方式获得swf文件中的类:
1.在swf中,export for actionscript 和export in form 1 勾起来。
2.加载时必须注意程序域
例子:加载swf->获取库里的声音->播放声
private var loadee:Loader;
private function ini():void
{
loadee=new Loader();
loadee.contentLoaderInfo.addEventListener(Event.COMPLETE,oncomplete);
//loadee.load(new URLRequest("soundtest.swf"));//如果这样写是不行的。反射不到类
loadee.load(new URLRequest("soundtest.swf"),new LoaderContext(false,ApplicationDomain.currentDomain));
}
private function oncomplete(e:Event):void
{
var sc:Class= (getDefinitionByName("box_notify.mp3") as Class);//关健是这一句 反射出一个名字是box_notify.mp3的类,也就是swf库里的链接名。
var sp:Object=new sc();
trace (describeType (sp));//显示类的信息,没什么用。
(sp as Sound).play();
}