用flex加载外部swf,如何获得外部swf的原flex项目中的所有元件以及所有定义的类.as的属性方法
答案:1 悬赏:10 手机版
解决时间 2021-11-19 20:15
- 提问者网友:低吟詩仙的傷
- 2021-11-19 03:53
用flex加载外部swf,如何获得外部swf的原flex项目中的所有元件以及所有定义的类.as的属性方法
最佳答案
- 五星知识达人网友:十鸦
- 2021-11-19 05:32
var urlRequest = new URLRequest(url);
var loader = new Loader;
//可以指定自身安全域的东西,我也不知道怎样解释;
var context:LoaderContext = new LoaderContext();
//指定域,即 context的applicationDomain为程序运行当前域。
context.applicationDomain = ApplicationDomain.currentDomain;
loader.load(urlRequest,context);
loader.contentLoaderInfo.addEventListener("complete",onCom);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,function(){
trace("找不到")
})
function onCom(e = null){
//当context的app域中拿到一个叫className的类。但出方法只限定于类,只放到库中的无外部关联的原件不能拿到
var tempClass:Class = context.applicationDomain.getDefinition(className) as Class;
var mc =(new tempClass);
}
原理就是,我们当前运行的程序就是一个很多的对象池,但是你load出来的swf是不会自动指定到这个池,所以你要修改下这个池的地址,然后你就可以操作里面的东西。当然你可以指定多个池,然后在其它池拿你想要的对象。
var loader = new Loader;
//可以指定自身安全域的东西,我也不知道怎样解释;
var context:LoaderContext = new LoaderContext();
//指定域,即 context的applicationDomain为程序运行当前域。
context.applicationDomain = ApplicationDomain.currentDomain;
loader.load(urlRequest,context);
loader.contentLoaderInfo.addEventListener("complete",onCom);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,function(){
trace("找不到")
})
function onCom(e = null){
//当context的app域中拿到一个叫className的类。但出方法只限定于类,只放到库中的无外部关联的原件不能拿到
var tempClass:Class = context.applicationDomain.getDefinition(className) as Class;
var mc =(new tempClass);
}
原理就是,我们当前运行的程序就是一个很多的对象池,但是你load出来的swf是不会自动指定到这个池,所以你要修改下这个池的地址,然后你就可以操作里面的东西。当然你可以指定多个池,然后在其它池拿你想要的对象。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯