代码之家  ›  专栏  ›  技术社区  ›  aaaidan

将远程swf“引导”到应用程序安全域(actionscript3)

  •  0
  • aaaidan  · 技术社区  · 16 年前

    我的Flash(AS3/AIR)应用程序目前使用了一种稍微不同寻常的架构(对于Flash应用程序),为运行时加载的内容提供特定的基类。外部内容是使用“存根”基类发布的,在加载时,这些基类在运行时会被“真实”基类所掩盖。我听说Adobe将其称为 ( pdf

    到目前为止,我一直在加载的外部内容都是从同一个服务器中加载的 SecurityDomain (同一个沙盒),这让我可以轻松地将内容加载到子文件中 ApplicationDomain . 不幸的是,据我所知 应用领域 那跨度是多少 s不能相互关联-也就是说,我不能使一个SecurityDom的AppDom成为另一个SecurityDom的AppDom的子级。

    虽然大多数都非常有限,但AIR的 sandboxBridge API可能是最强大的。不幸的是,这些通信方法都不允许我实现这种自举架构。

    LoaderContext 对象具有 securityDomain 属性,但Flash security禁止“本地主权财富基金”触摸它(它会抛出 SecurityError

    弗莱克斯 SWFLoader 有一个 trustContent 安全域 Loader

    我怀疑我将不得不重新设计(这并不容易),但我想我应该在这里检查一下,我的研究中没有遗漏什么。

    提前谢谢!

    此后,我决定重新设计该体系结构,以便在外部域上进行引导。然而,出于好奇,我的问题仍然存在。

    2 回复  |  直到 16 年前
        1
  •  1
  •   John Millikin    16 年前

    从技术上讲,AIR应用程序是否可以简单地将外部swf保存在应用程序目录中,然后从那里加载它们,使它们位于同一个安全沙箱中?

    然而,有一些非常明显的原因可以解释为什么这会是一个坏的因果报应,因此似乎任何解决方案都必然会提出这样一个问题:将本地应用程序内容和远程不受信任的内容放在同一个应用程序域中是否是正确的体系结构方法。。?

        2
  •  1
  •   aaaidan    15 年前

    在撰写本文时,我确定您无法加载 ApplicationDomain SecurityDomain 如果它来自另一个领域,即使是空气。

    我想是故意的。