AS3ApplicationDomain-创新互联
ApplicationDomain为AS3的应用程序域。它和安全域(沙箱)还是有区别的。
创新互联建站专注于贵港网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供贵港营销型网站建设,贵港网站制作、贵港网页设计、贵港网站官网定制、微信小程序定制开发服务,打造贵港网络公司原创品牌,更为您提供贵港网站排名全网营销落地服务。应用程序域有三种类型:系统域子域(新的应用程序域)、当前应用程序域、当前应用程序域的子域。他们的关系就像是这样:
详解:
ApplicationDomain 类的用途是存储 ActionScript 3.0 定义表。SWF 文件中的所有代码被定义为存在于应用程序域中。 可以使用应用程序域划分位于同一个安全域中的类。这允许同一个类存在多个定义,并且还允许子级重用父级定义。
利用ApplicationDomain加载类定义的代码如下
var urlRequest:URLRequest = new URLRequest(url); var loader:Loader = new Loader(); var context:LoaderContext = new LoaderContext(); //当前域 context.applicationDomain = ApplicationDomain.currentDomain; //新应用程序域 //context.applicationDomain = new ApplicationDomain(); //当前域子域 //context.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain); loader.load(urlRequest, context);下面来说说具体的三个域:
1、当前域
在当前域中加载类定义后,如果当前域中已经有了同名的类定义,那么新加载的类定义不会覆盖原来的(注意!important),原来没有的会添加到as3的定义表中。
2、新应用程序域
(在系统域中新建一个应用程序域,他和当前域是平级的:上面的图中已经有明确的表达)这样我们可以对相同名称的类,可以有两个完全不同的定义。
此方法的一个用处是使旧版应用程序能够动态加载相同应用程序的更新版本,而不会发生冲突。之所以不发生冲突,是因为尽管使用的是同样的类名称,但它们划分到不同的应用程序域中。
3、当前域子域
在当前域中新建一个子域。这里也有一个要注意的,就是当父级域中(也就是当前域)没有同名的定义时,子域中的类才会被定义。
如果能够确保所有类始终更新为向后兼容,并且正在加载的应用程序始终比其加载的软件的版本新,则子级将使用父级版本(旧版本)。如果可以确保不继续拥有对子级 SWF 的引用,则拥有了新的应用程序域还使您能够卸载所有的类定义以便于垃圾回收。此方法使加载的模块可以共享加载者的 singleton 对象和静态类成员。
获取特定的应用程序域:
Loader.contentLoaderInfo.applicationDomain另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章题目:AS3ApplicationDomain-创新互联
转载来于:http://cdiso.cn/article/dscdii.html