宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > AS2与AS3技术

[AS3]as3.0的ApplicationDomain应用域

2016-10-13 00:16:48 点击量:13 标签: 收藏本文

在loadSWF的时候

  1. var loader:Loader = new Loader(); 
  2. loader.load(new URLRequest("child.swf"),2223); 

load方法,有两个参数,第一个是要加载对象的url;第二个就是将些swf里面的类定义放在哪个ApplicationDomain(应用程序域)里面

 下面就来说说这个应用程序域

主要来说有三种方式(还有一种不常见)

(一)

将被加载的类定义放在父应用程序域的子域(父域里面的子域,默认加载方式)

  1. var currentApplication:ApplicationDomain =ApplicationDomain .currentDomain; 
  2. var loaderContext:LoaderContext = new LoaderContext(); 
  3. loaderContext.applicationDomain = new ApplicationDomain (currentApplication); 
  4. loader.load(new URLRequest("child.swf"),loaderContext); 

(二)

将被加载的类定义放在父应用程序域的里面,也就是两个合并(在一起了不过命名会有冲突)

  1. var currentApplication:ApplicationDomain =ApplicationDomain .currentDomain; 
  2. var loaderContext:LoaderContext = new LoaderContext(); 
  3. loaderContext.applicationDomain = currentApplication 
  4. loader.load(new URLRequest("child.swf"),loaderContext); 

(三)

将被加载的类定义放在作为父域的系统域下的新建子域(也是和父域同级别)

  1. var loaderContext:LoaderContext = new LoaderContext(); 
  2. loaderContext.applicationDomain = new ApplicationDomain (); 
  3. loader.load(new URLRequest("child.swf"),loaderContext); 

 这些有什么用呢,下面是重点拉

当子swf被加载到父类使用的方法不同,我们访问子类的类定义的方式也不同

目前本人也只知道第一种,第三种和第二种的区别

 第一种和第三种 获取类定义是loader.contentLoaderInfo.applicationDomian.getDefinition("类名");这个需要知道loader

第二种,直接可以ApplicationDomain.getDefinition("类名");这个不需要知道loader多方面

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室