本地运行swf访问网络的安全问题解决办法

作者: nick 分类: as, flash 发布时间: 2011-06-12 06:21 ė 6没有评论

FLASH在没有发布成网络形式或是不在网页中(直接在本地电脑运行)运行时会碰到这种情况,编译器提示安全沙箱冲突或是需要和网络通信,然后就不 干活儿了,在IDE测试明明是好的, 发布成SWF文件后,再执行却弹出个某某需要和远程通讯的提示框。如下,这往往令初学者朋友一头雾水。
1、找到这个文件夹:c:\Documents and Settings\\Application Data\Macromedia\Flash Player\#Security
2、在其下建立一个名为”FlashPlayerTrust”的文件夹
3、在”FlashPlayerTrust”文件夹下新建一TXT文件,内容如下:
c:\
d:\
e:\
f:\
4、将该txt文件命名为:”myTrustFiles.cfg”
(我的经验是不一定要给它命令,只要是txt的就可以了)
再打开你硬盘里的SWF文件,就不会出现那个烦人的安全设置提示窗口了!

解决BitmapData.draw()在fms流的跨域问题
因为flash的跨域问题, 会导致BitmapData.draw() 方法在对有跨域加载的视频流, 图片等资源时抛出SecurityError异常导致无法正常抓图
解决方式在帮助文档也有说, 总结一下:
1.图片跨域
在被加载图片域放置crossdomain.xml
load(new URLRequest(path), new LoaderContext(true));

2.点播流(http视频流)
在被加载视频域放置crossdomain.xml
设置netStream.checkPolicyFile = true;

3.实时流跨域
这个要在FlashPlayer 9.0.115.0才有效
方法来源于:
http://www.ekameleon.net/blog/index.php?2008/02/20/93–fmis3-bitmapdatadraw-and-flash-player-901150-security-sandbox-violation
我只做了fms3下的测试通过.
简单点说就是在fms应用的main.asc 中加上
application.onConnect = function( client )
{
// fix Security sandbox violation : BitmapData.draw on RTMP source
client.videoSampleAccess = “/”;

this.acceptConnection(client) ;
}

本文出自 传播、沟通、分享,转载时请注明出处及相应链接。

本文永久链接: https://www.nickdd.cn/?p=1567

发表评论

您的电子邮箱地址不会被公开。

Ɣ回顶部