[AS3]ApplicationDomain的误解,安全沙箱有关内容
ApplicationDomain
(终于消除了长久以来对ApplicationDomain的误解,原来一直以为这是一个和安全沙箱有关内容,看来我真的错了。在flash_as3_programming中有详细的解释。
- 应用程序域 (Application domain):用于将不同 SWF 文件中使用的类分开的机制,以便在 SWF 文件包含具有相同名称的不同类时,这些类不会彼此覆盖。
每个安全域被分成一个或多个由 ApplicationDomain 对象表示的应用程序域。 应用程序域并不是用于安全目的;它们用于管理 ActionScript 代码的协作单元。 如 果是从其它域加载 SWF 文件,并允许将它放置到另外一个安全域中,则您将无法控制所加载的 SWF 文件被放置到哪个应用程序域中;即使您指定应选择某个应用程序域,也会忽略。 但是,如果是将 SWF 文件加载到您自己的安全域中(因为此 SWF 文件来自您自己的域,或者您正在将它导入到您的安全域中),您就可以控制为所加载的 SWF 文件选择哪个应用程序域。
应用程序域有三种类型,系统域子域(新的应用程序域)、当前应用程序域、当前应用程序域的子域。他们的关系就像是这样
ApplicationDomain 类的用途是存储 ActionScript 3.0 定义表。SWF 文件中的所有代码被定义为存在于应用程序域中。可以使用应用程序域划分位于同一个安全域中的类。这允许同一个类存在多个定义,并且还允许子级重用父级定义。
利用ApplicationDomain加载类定义的代码如下
1. | var urlRequest:URLRequest = new URLRequest(url); |
2. | var loader:Loader = new Loader(); |
3. | var context:LoaderContext = new LoaderContext(); |
4. | //当前域 |
5. | context.applicationDomain = ApplicationDomain.currentDomain; |
6. | //新应用程序域 |
7. | //context.applicationDomain = new ApplicationDomain(); |
8. | //当前域子域 |
9. | //context.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain); |
10. | loader.load(urlRequest, context); |
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例