·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]ApplicationDomain的误解,安全沙箱有关内容

时间:2014-12-25 17:00酷播
终于消除了长久以来对ApplicationDomain的误解,原来一直以为这是一个和安全沙箱有关内容,看来我真的错了。在flash_as3_programming中有详细的解释

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);

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器