2008年12月22日星期一

如何设置本地swf仅访问网络

(发现有代理的时候还是比较郁闷的...单独swf无法设置代理,只有跑在浏览器里才可以...)
1,输出设置里把local playback选项设置为access network only。 (我这么用老是不成功,不知为何...郁闷)
2,下载 Flash Local Content Updater ,来防止弹出安全对话框。
Local Content Updater 在以下地址下载
http://www.adobe.com/support/flashplayer/downloads.html
原理 当通过本地打开swf文件时,安全沙箱如下:
1,Remote (通过HTTP URL访问的SWF) 简单说就是放在网上的SWF(本地虚拟站点也算).安全机制与Flash Player 6相同(crossdomain.xml)
2,Local-with-filesystem 默认方式,可访问本地文件系统,但不能与网络通讯.也就是这种本地使用getURL()会看到安全提示对话框.
3,Local-with-networking 可以访问网络,但不能访问本地文件系统.可以载入同一目录下的SWF: a.loadMovie("b.swf");但不能这样:a.loadMovie("sub/b.swf");或a.loadMovie("c:\b.swf");(上两种可通过 Flash Local Content Updater 直接转换)
4,Local-trusted (通过Settings Manager指定过的本地SWF.这种权限最大.相当于Local-with-filesystem-with-network)
第4种的实现是通过网上的Settings Manager来设置来自macromedia的本地shared object来实现。 (所以第四种不依靠外部程序我们是无论如何无法实现的)
第二三种则是通过向swf文件中写入一个flash player所能识别的tag标签来设置是否允许本地访问或网络访问。(修改自身即可实现)

没有评论: