自从Flash8以后,为了安全考虑,本地SWF文件是不能访问其他资源的。但是有两个例外,即“仅限于文件系统的 SWF 文件”和“可信的本地 SWF 文件”,下面我们分别讨论这两个例外。
解决方案一:Flex编译参数增加-use-network=false
或Flash输出选项Access local files only
确保Flex程序不能访问网络连接。即”仅限于文件系统的 SWF 文件“。此时SWF文件只能在本地运行。此方法通常适用于本机运行的一些SWF程序,如CD的autorun文件。缺点是传到网上不能运行,也不能在本地访问网上的东西。即本地网络相隔离。
解决方案二、在%windir%/System32/Macromed/Flash/FlashPlayerTrust
(对单用户是Application Data\Macromedia\Flash Player\#Security\FlashPlayerTrust
)目录下添加一个文件,文件名可任意起,文件内容为项目的路径,当然也可以设置为盘符。
FlashPlayerTrust文件夹内所有文件内的路径下的swf文件可以自由访问其他资源。即“可信的本地 SWF 文件”,此方法主要在测试Flash程序时使用,本地网络双支持,缺点就是发给别人运行的时候别人也要设置一下。此外考虑到安全性,不要将项目的路径设置的过于大范围,因为本地网络权限双支持,恶意Flash文件完全可以把本地的任何的文件传到指定服务器上。