flash不能访问本地资源
发布时间:2020-12-15 06:41:05 所属栏目:百科 来源:网络整理
导读:自从Flash8以后,为了安全考虑,本地SWF文件是不能访问其他资源的。但是有两个例外,即“仅限于文件系统的 SWF 文件”和“可信的本地 SWF 文件”,下面我们分别讨论这两个例外。 解决方案一、Flex编译参数增加“-use-network=false”或Flash输出选项”Access
自从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 DataMacromediaFlash Player#SecurityFlashPlayerTrust)目录下添加一个文件,文件名可任意起,文件内容为项目的路径,当然也可以设置为盘符。 FlashPlayerTrust文件夹内所有文件内的路径下的swf文件可以自由访问其他资源。即“可信的本地 SWF 文件”,此方法主要在测试Flash程序时使用,本地网络双支持,缺点就是发给别人运行的时候别人也要设置一下。此外考虑到安全性,不要将项目的路径设置的过于大范围,因为本地网络权限双支持,恶意Flash文件完全可以把本地的任何的文件传到指定服务器上。
swf不能访问本地资源的解决办法
对于类似的出错信息:
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() 解决方法:? 第一种:? flex项目上点右键-->properties-->ActionscriptCompiler-->Additional compiler arguments? 加上“ -use-network=false ”,这种方式swf就无法访问网络资源了,比如socket通讯之类的。所以最好不要这样用。? 第二种: ??? 找到windows安装目录下system32MacromedFlashFlashPlayerTrust,在这个目录下随便建个文本文件,在文件里输入需要访问本地资源flash的详细路径,保存。执行swf,不再出错了。OK? 如: 在C:WINDOWSsystem32MacromedFlashFlashPlayerTrust目录下添加一个文件,比如:1.txt(文 件名可任意起),文件内容为:“D:demotest”即项目的路径,当然也可以设置为“D:”。需要关闭浏览器这种设置才会生效,因为如果浏览 器正在运行,Flash player 已经读取了FlashPlayerTrust的内容,新的设置不会生效。参考http://kb2.adobe.com/cps/518 /cpsid_51814.html。 第三种: 如果让一个swf可被其他域访问,使用 flash.system.Security.allowDomain(),flash.system.Security.allowInsecureDomain()。参数设置为“*”可以让所有的域能够访问它。 第四种: 使用策略文件:内容可以是ip,域名,*。 <?xml version="1.0"?> <!-- http://www.mydomain.com/crossdomain.xml --> <cross-domain-policy> <allow-access-from domain="www.otherdomain.com" /> <allow-access-from domain="*.adobe.com" /> <allow-access-from domain="123.45.67.89" /> <allow-access-from domain="*" /> </cross-domain-policy> 再使用 flash.system.Security.loadPolicyFile() 读取这个策略文件。这种方式是最灵活,最安全的方式。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails – RSpec请求对象为零
- c# – C使用正则表达式搜索Sharp文件夹
- C++ find_if_not(STL find_if_not)查找算法详解
- Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(八)
- ruby – 通过命令行传递数组
- swift3 – 通过cocoapods安装领域时出错
- Ajax实现页面局部刷新
- c – 我一直收到错误“不匹配调用”(std :: vector)(int)“
- swift – iOS 9,Xcode 7,带有SpriteKit的多点触控
- ruby-on-rails – activerecord has_many:通过一次sql调用