SecurityError: Error #2148: SWF 文件 file:///F:/work2010/tiger/rmpublisher.air/bin-debug/index.swf 不能访问本地资源 file:///F:/work2010/tiger/rmpublisher.air/bin-debug/plugins/plugins.xml。只有仅限于文件系统的 SWF 文件和可信的本地 SWF 文件可以访问本地资源。
at flash.net::URLStream/load()
at flash.net::URLLoader/load()
at com.edlt.utils::Settings/loadSettings()[D:
解决方法:
第一种:
flex项目上点右键-->properties-->ActionscriptCompiler-->Additional compiler arguments
加上 “ -use-network=false ” 就OK了
swf就无法访问网络资源了,比如socket通讯之类的.
所以最好不要这样用。
第二种:
在网上找了很多关于安全沙箱的文章,大多数都是如何解决网络资源访问的问题,和本文中想要的结果不同。虽然这些文章没有解决本地资源访问的问题。关于这种问题的解决方案应该是类似的,网络的是在cross什么的文件中增加信任的域名来允许访问,那么本地资源应该也能在某个地方加上本地资源路径来允许访问的。
具体如下: 找到windows安装目录下system32\Macromed\Flash\FlashPlayerTrust,在这个目录下随便建个文本文件,在文件里输入需要访问本地资源flash的详细路径,保存。执行swf,不再出错了。OK
如:在C:\WINDOWS\system32\Macromed\Flash\FlashPlayerTrust目录下添加一个文件,比如:1.txt(文件名可任意起),文件内容为:“D:\demo\test\”即项目的路径,当然也可以设置为“D:\”