0

我一直在处理 Photoshop UI 项目,并且还使用 Flash Builder 工作了大约 3 周,但我找不到解决通信问题的方法。以下是有关该问题的一些详细信息;如果你有兴趣帮助我,谢谢。

  • UI的主框架是Extendscript

  • 我有一个 as3 swf 需要动态加载本地 JPG 文件,我认为这是 Flash 的“仅访问本地文件”情况。

  • 相同的 SWF 需要与 Extendscript 通信,因此我通过 SWFLoader 将其动态加载到 FLEX 应用程序中,并将一些变量传递给 FLEX,并通过“myFlexParent”对象触发 FLEX 中的一些函数。

  • Flex 是 Fl​​ash 和 Extendscript 之间的桥梁,因此它通过 Externalinterface.call 或 CSXSInterface.instance.evalScript() 将变量和函数传递给 Extendscript JSX 代码。

这就是我卡住的地方。我猜 ExternalInterface 调用或 CSXSInterface.instance.evalScript() 作为网络操作受到威胁,如果我在 flex 中设置编译选项“-use-network=false”,它们将不起作用。否则无法加载本地 JPG 文件。

在设置管理器中添加位置对我来说不起作用,因为我要把 UI 变成一个扩展并且它应该很容易安装。

我想我正试图找到一种在 FLEX 和 ExtendScript 之间建立双向通信的方法,这将被 Flash Player 解释为 LOCAL 通信,实际上是。

我会很感激任何信息。谢谢。

4

1 回答 1

0

ExternalInterface is going to be considered a network call and setting the -use-network=false will break those calls down. This is due to the security sandbox. If it was allowed then the flash app could be used with some simple AJAX to turn a non-network app into a network app very easily.

Adobe doc's say:

This communication relies on the domain-based security restrictions that the allowScriptAccess and allowNetworking properties define. You set the values of the allowScriptAccess and allowNetworking properties in the SWF file’s wrapper.

Reference link:

http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf6167e-7fff.html#WS2db454920e96a9e51e63e3d11c0bf6167e-7ff5

Look into changing your app into an AIR app as you will be able to do both network and local file operations (different security model since the user installs the application).

于 2012-06-08T15:30:34.900 回答