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

[AS3]Flash安全沙箱——安全域和程序域的介绍和应用(2)

时间:2012-08-27 11:19cnblogs.com
应用程序域:主要为了解决相同安全域下类的命名冲突问题。 应用程序域只存在于相同的安全域下,划分管理类定义。对于加载上来的swf,在加载时候可以通过LoaderContext指定子应用的程序域。 有四种ApplicationDomain

  应用程序域:主要为了解决相同安全域下类的命名冲突问题。应用程序域只存在于相同的安全域下,划分管理类定义。对于加载上来的swf,在加载时候可以通过LoaderContext 指定子应用的程序域。

  有四种 ApplicationDomain 属性可供您选择使用:

  •   加载器的 ApplicationDomain 的子级。默认值。可以使用语法 new ApplicationDomain(ApplicationDomain.currentDomain) 显式表示这种选择。这将允许所加载的 SWF 文件直接使用父级的类,例如,可通过编写 new MyClassDefinedInParent() 来使用。但是父级则不能使用此语法;如果父级要使用子级的类,它必须调用 ApplicationDomain.getDefinition() 来检索它们。这种选择的优点是,如果子级定义的类与父级已经定义的类同名,不会出现错误结果;子级只会继承父级对该类的定义,除非子级或父级调用 ApplicationDomain.getDefinition() 方法来检索子级的冲突定义,否则将不使用此定义。
  •   加载器自己的 ApplicationDomain。使用 ApplicationDomain.currentDomain 时请使用此应用程序域。加载完成后,父级和子级可以直接使用对方的类。如果子级试图定义的类与父级已定义的类同名,则使用父类并忽略子类。
  •   系统 ApplicationDomain 的子级。使用 new ApplicationDomain(null) 时请使用此应用程序域。这将完全分离加载方和被加载方,从而允许它们使用相同的名称定义各自版本的类并且不会产生冲突或隐藏。一方查看另一方的类的唯一方式是调用 ApplicationDomain.getDefinition() 方法。
  •   其他 ApplicationDomain 的子级。有时可能会有更复杂的 ApplicationDomain 层次结构。可以将 SWF 文件从您自己的 SecurityDomain 加载到任何 ApplicationDomain 中。例如,new ApplicationDomain(ApplicationDomain.currentDomain.parentDomain.parentDomain) 将 SWF 文件加载到当前域父级的父级的新子级中。(古风依云)

 

热门文章推荐

请稍候...

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

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