1

参考: http: //livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/Loader.html

关于通过 Loader 类加载子 SWF 的父 SWF,是否可以防止加载的子 SWF:

  • 拨打任何网络电话,或
  • 调用特定域

基本上,我正在寻找 allowNetworking 的编程版本: http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file= 00001079.html

此外,

  1. Flash Player 版本和 Actionscript 版本是否存在差异?
  2. 如果改用 Flex 的 SWFLoader 会不会有任何差异?

非常感谢,

杰夫

4

1 回答 1

1

简单的答案是“不,你不能”。这是因为您无法隐藏或替换播放器的内置功能。理论上,您可以通过检查 SWF 的 DoABC 块并找到对 URLLoader 或 navigateToURL 等的调用来防止许多此类调用。当然,不可能找到它们中的每一个,因为它们可能会通过反射调用。此外,您必须编写一个反编译器才能做到这一点。

  1. ActionScript 的版本历史很短,只有 1.0、2.0 和 3.0。Flash Player 不执行 ActionScript。它执行字节码( ABC -一个ctionScript字节码)。除了持续维护之外,ABC 格式几乎没有变化。最重要的体现在 ABC 格式规范中。因此,例如,在 Flash Player 10 中添加了一组操作码,即“Alchemy 操作码”,但是,在 AS3 中编写的程序员无法使用它们。我正在使用这个http://www.anotherbigidea.com/javaswf/avm2/AVM2Instructions.html作为快速参考,但它有点过时了。

  2. SWFLoader 是您在处理 Flex 框架时要使用的类。它本质上是 Loader 类,扩展以处理框架在内置插件之上引入的问题。

于 2011-10-11T13:45:16.673 回答