Flash应用程序域学习笔记

来源:互联网 发布:北风网php 百度云 编辑:程序博客网 时间:2024/04/30 10:40

在上一篇博客中,简记了关于安全域的学习笔记。本篇继续学习,参考

深入理解Flash Player的应用程序域(Application Domains)

 

1.安全域是为了数据安全,使用了沙箱对不同域(包括网络域和本地安全域)进行了资源隔离。当然这还要细分为http的加载策略安全和socket的通信策略安全,不细述。而应用程序域则是主要为了解决命名冲突问题。应用程序域只存在于唯一的一个安全域,划分管理类定义(函数、接口、命名空间的定义),但一个安全域可以包括多个应用程序域。

2.应用程序域通过类似于Flash中的显示列表那样的层级关系链接在一起。应用程序域可以包含任意的子域,而子域只能有一个父域。子域继承了来自父域中的定义,就像是显示列表中父对象的位置和缩放属性被子对象继承一样。切记这一点,类比于显示列表的管理方式,将很容易理解域的层级关系。

3.应用程序域的根节点是一个系统域,这个域包含了Flash Player API的原生定义(Array,XML,flash.display.Sprite等等)。系统域与安全域是一一对应的关系,当安全域初始化的时候这个唯一的系统域也被建立。

4.第一个实例化的SWF文件将成为系统域的直接子域。当它去加载一个子SWF时,可以选四个位置:

父SWF的应用程序域的新建子域(默认方式) 

子SWF 与父SWF的应用程序域合并

作为父域的系统域下的新建子域

在其他安全域下的系统域的新建子域 注意:是其他安全域

var context:LoaderContext = new LoaderContext();

var current:ApplicationDomain = ApplicationDomain.currentDomain;//父SWF所在的应用程序域

context.applicationDomain = new ApplicationDomain(current);//在父SWF所在域新建一个子域(默认行为)

//context.applicationDomain = new ApplicationDomain();//在父SWF应用程序域所在的系统域

0 0
原创粉丝点击