flash 中的 ApplicationDomain

使用 ApplicationDomain 类

 <script src="/_sharedassets/pages.js"></script>

 

ApplicationDomain

 

ApplicationDomain 类的用途是存储 ActionScript 3.0 定义表。SWF 文件中的所有代码被定义为存在于ApplicationDomain 中。 可以使用应用程序域划分位于同一个安全域中的类。这允许同一个类存在多个定义,并且还允许子级重用父级定义。

 

在使用 Loader 类 API 加载用 ActionScript 3.0 编写的外部 SWF 文件时,可以使用应用程序域。(请注意,在加载图像或用 ActionScript 1.0 或 ActionScript 2.0 编写的 SWF 文件时不能使用应用程序域。)包含在已加载类中的所有 ActionScript 3.0 定义都存储在应用程序域中。加载 SWF 文件时,通过将 LoaderContext 对象的 applicationDomain 参数设置为 ApplicationDomain .currentDomain ,可以指定文件包含在 Loader 对象所在的相同应用程序域中。通过将加载的 SWF 文件放在同一个应用程序域中,可以直接访问它的类。如果加载的 SWF 文件包含嵌入的媒体(可通过其关联的类名称访问),或者您要访问加载的 SWF 文件的方法,则这种方式会很有用。

 

使用 ApplicationDomain 类 <script src="/_sharedassets/pages.js"></script>

使用应用程序域时,还要记住以下几点:

  • SWF 文件中的所有代码被定义为存在于应用程序域中。 主应用程序在"当前域"中运行。"系统域"中包含所有应用程序域(包括当前域),也就是,它包含所有 Flash Player 类。
  • 所有应用程序域(除系统域外)都有关联的父域。主应用程序的应用程序域的父域是系统域。已加载的类仅在其父级中没有相关定义时才进行定义。不能用较新的定义覆盖已加载类的定义

 

 

 

看一下下面这个例子:


flash 中的 ApplicationDomain

使用 ApplicationDomain 类 <script src="/_sharedassets/pages.js"></script>

主应用程序文件为 application1.swf。它包含从其它 SWF 文件加载内容的 Loader 对象。在此方案下,当前域为 Application domain 1。用法 A、用法 B 和用法 C 说明了为应用程序中的每个 SWF 文件设置适当应用程序域的不同方法。

 

 

用法A:

用的不是很多,实际上是单独的创建一个新的域和当前应用程序域平级。作为系统域的真子集。

request.url = "application2.swf";
request.applicationDomain


 = new ApplicationDomain

();

 

 

用法B:

被用作Rsls(运行时共享库)的技术,就是在当前的ApplicationDomain添加新的类定义。

request.url = "module3.swf";
request.applicationDomain = ApplicationDomain.currentDomain;

 

 

用法C:

被用作Modual(模块)技术,就是在当前的ApplicationDomain的真子域,他的特点是可以动态的加载和移除。便于垃圾回收。

request.url = "module3.swf";
request.applicationDomain


 = new ApplicationDomain

(ApplicationDomain

.currentDomain);

你可能感兴趣的:(C++,c,C#,Flash,actionscript)