关于Application Domain -接上篇加载一个FLEX子应用程序

来源:互联网 发布:android怎么用数组传参 编辑:程序博客网 时间:2024/05/17 06:39
      

一个应用程序域是一个类定义所属的容器。主应用程序具有一个单独的、顶级的叫系统域的应用程序域。某个特定应用程被定义为系统域的一个节点,当一个FLEX子应用程序被加载另外一个主应用程序时,你可以将这个子应用程序加载到三个应用程序域类型之一,同级域(兄弟域)、子域、当前域。当你将一个FLEX子应用程序加载到同级应用程序域时,这个子应用程序的应用程序域和它的主应用程序域具有相同的父应用程序域,进一步说,这个子应用程序与其他同级的应用程序是同等的;当你将子应用程序加载到一个子应用程序域时,那这个子应用程序的应用域就是主应用程序应用域的一个子节点;当你加载一个子应用程序到当前域时,那么这个子应用程序被加载到与主应用域相同应用中。每个子应用程序域决定了其从哪里加载类。

默认的SWFLoaderLoader控件行为是加载一个子应用程序到一个子应用程序域中。如果这个子应用程序和主应用程序被不同版本 Flex框架编译,会导致一个运行时错误。这些错误产生的原因在于应用程序有时对相同的类编译出不同的定义。

你可以通过在SWFLoader上设置loadForCompatibility属性指定子应用程序的被加载到的应用程序域。如果你设置了这个属性为true,那么子应用程序被加载同级应用程序域。如果你设置这个属性为false,那么这个子应用程序被加载到子应用程序域中。这个属性的默认值是false,所以,默认情况下,子应用程序不可以多版本化。

你可以在LoaderContext对象上指定应用程序域。你这样做是因为你在使用SWFLoader控件时指定了它的loaderContext属性值,关于这请看21页的“指定LoaderContext”。

原创粉丝点击