flash cs6类加载和应用程序域有什么作用?

今天我们来介绍关于flash中的类加载和应用程序域的概念和作用,ApolicationDomain类的用途是存储ActionScript3.0定义表,swf文件中的所有代码定义都存在应用程序域中,可以使用应用程序域划分位于同一个安全域中的类,这允许同一个类存在多个定义,并且还允许子级重用父级定义,下面我们就俩看看详细的介绍。

(一)应用程序域类可以看作管理加载类的区域,有3个区域用来保存类。

1、加载到子域

类似于“继承”,子域可以直接获得父域所有的类定义;反之,父域得不到子域的。和继承关系不同的是,如果子域中有和父域同名的类,子域定义会被忽略而使用父域的定义。

2、加载到同域

类似集合里的合并关系,被加载的swf文件里的所有类定义被合并到当前域中且可以直接使用,和加载到子域相同,与当前域同名的域也会被忽略。

3、加载到新域

swf载入指定域之前,先要检查该域及其父域中是否存在同名类,重复定义一概忽略。如果加载别人写的程序,或者使用旧版本的主程序加载新版本的模块,为避免类名冲突要加载到新域独立运行便于使用自己的类。

4、系统域指的是Flash播放器的核心类定义,在系统域的下面就是主程序,不同加载域的结构如下图所示。

(二)根据按钮与主程序的位置关系,把加载域分为三种。

1、把外部swf文件加载到同域,即和主程序同一个位置的区域。如果在同域和主程序中有相同的类定义,则忽略同域的类定义,使用主程序中的类定义。它使用的代码如下图所示。

2、把swf文件加载到子域,即位于主程序下一级位置的区域,主程序相当于父域,被加载的域相当于子域,与加载到同域类似,如果子域中有和父域同名的类,子域定义会被忽略而使用父域的定义。执行它的代码如下图所示。

3、把swf文件加载到新域,即位于主程序同一级位置的区域。如果加载域与主程序中有同名的类,使用的不是主程序中的类,而是加载域的类。即使新旧版本之间使用同样的类名,也不会发生命名冲突,因为它们被划分到了不同的应用程序域中。实现它的代码如下图所示。

以上就是关于flash中类加载和应用程序域的介绍,希望大家喜欢,请继续关注来客网。