解决”安全沙箱冲突”的第一种方法:是通过配置跨域文件来实现的,但因为作者未写明细节,所以看不出配置文件所在的域是A还是B。
刚才 load 一张网络上的图片,发现不能用 setMask 对其遮罩,trace 出现“安全沙箱冲突”。知道原因就好办了,调用不同域的对象或变量需要 allowDomain,如下:
System.security.allowDomain("www.zhugao.cn");
loadMovie("http://www.zhugao.cn/images/links/links_zhugao.jpg", my_mc);
注意,“www.zhugao.cn”和“zhugao.cn”不是相同域,根据目标而定。例如 loadMovie("http://player.zhugao.cn/***.jpg", my_mc); 那么 allowDomain 的应该是 player.zhugao.cn,而不是 zhugao.cn,也不是 www.zhugao.cn
如果要允许多个域,可以用逗号隔开:
System.security.allowDomain("www.zhugao.cn", "zhugao.cn", "player.zhugao.cn");
播放器在 8.0 以上可以使用通配符 “*” 来允许所有域:
System.security.allowDomain("*");
解决:”FLASH3.0安全沙箱” 问题的方法二:
利用JS脚本绕过安全沙箱(有待验证,如果可以也不失为一种体面的解决办法!)
Flash作为一种客户端的前台脚本技术,本来是不应该赋予更强大的功能的。
但是随着Flash技术的发展,目前已然能够读xml文件,载入多媒体内容,
甚至直接与服务器端进行Socket通信。
当然,这些还不够,Flash与js,Flash与Flash之间也已然实现了交互通信。
这样导致的结果就是带来了大量令人头疼的安全问题。
于是Flash在它的AS3.0里提出了安全沙箱这一概念。
在未经授权的情况下,Flash默认状态是不允许进行跨域通信的,这样就使得Flash的安全可靠性得到了提高。
可同时也带来了意想不到的麻烦:我制作了一个Flash,在页面中用js脚本控制as脚本,然后使用FlashCS3的发布功能发布了该Flash,
上传到网站上后,问题出现了,此时Flash无论执行任何访问外界的as脚本均会提示安全沙箱问题!
即使是打开链接地址也会出现警告!
解决的办法很简单,连我自己后来都觉得很诧异:将调用Flash的参数:allowScriptAccess的值改为always即可。
例如:<param name="allowScriptAccess" value="always" />
用js来控制Flash的安全访问?是不是有点自欺欺人?
解决”安全沙箱冲突”的方法三:使用Asp.Net绕过As3的跨域安全沙箱
完全的文件转发,以极低的效率来解决了问题,基本无实用价值.作者有大段的代码就没有全部复制,请根据上面引用详细阅读。
As3的SandBox这点上有点让人感觉非常郁闷。
如果要取不同域上的文件(比如歌曲,图片等),当对方服务器没有crossdomain.xml的时候就会出现安全沙箱错误。
这点有点郁闷。
中午午饭后,想到这个问题,于是用Asp.Net写了个Web Proxy。通过Asp.Net进行资源的转发,解决了跨域的安全沙箱问题。
不过这个东东会加大服务器的带宽和计算压力~
解决”安全沙箱”的方法四:一种猥琐的图片跨域的方法似乎是利用了Flex本身的疏漏来达到特定访问图片的方法,但由于作者代码的不完全,作为初学的我还无法完全理解他的思路,还请大家指教这个。
今天看到达达(ASFlex)的博文,关于跨域的问题,突然想起来我之前[原]淘宝店家起义篇。。。要做的实验之一,遂趁当前下班时间,在公司里写了一段测试代码。
果然是无法Draw的,在帮助文档已经明确的写了......................................
如何突破呢? 还是以后直接拿TextField来用?
以此标记,下回,改用AVM1+AVM2混合内容测试
目前方法是猥琐的抽出Loader来用
测试连接:
www.xintend.com/temp/icd/index.html
有兴趣的同学可以去玩下~~ 图片可以拖动~~~~~~~
核心 代码部分:
01. function handleLoadBtn():void {
02. var s:String = urlInput.text;
03. var ht:String = "<img src='";
04. if (s.length > 0) {
05. ht += s;
06. ht += "' ";
07. ht += "id='image'>";
08. tf.htmlText = ht;
09. output.text = ht;
10. output.text += "\n";
11. output.text += tf.getImageReference("image");
12. var c:DisplayObject = tf.getImageReference("image"); 1
3. ui.addChild(c);
14. output.text += "\n ui.addChild(c);";
15. }
16. }
解决本地的安全沙箱,我本地测试的时候倒没遇到过!
经常在本机调试flash的时候,会报安全沙箱问题,除了去adobe的网站(www.macromedia.com/suppor ... ings_manager04.html)上添加本机的目录外,还可以有一种更简单的办法,
[color=red]在C:\windows\system32\Macromed\Flash\FlashPlayerTrust 下面,添加一个txt文件,例如songhuan .txt,然后在里面添加你的本机的目录,例如f:\songhuan\ 或者c:\都可以。以后在哪里报错了,就在这个文件里添加路径就可以了。[/color]
刚才 load 一张网络上的图片,发现不能用 setMask 对其遮罩,trace 出现“安全沙箱冲突”。知道原因就好办了,调用不同域的对象或变量需要 allowDomain,如下:
System.security.allowDomain("www.zhugao.cn");
loadMovie("http://www.zhugao.cn/images/links/links_zhugao.jpg", my_mc);
注意,“www.zhugao.cn”和“zhugao.cn”不是相同域,根据目标而定。例如 loadMovie("http://player.zhugao.cn/***.jpg", my_mc); 那么 allowDomain 的应该是 player.zhugao.cn,而不是 zhugao.cn,也不是 www.zhugao.cn
如果要允许多个域,可以用逗号隔开:
System.security.allowDomain("www.zhugao.cn", "zhugao.cn", "player.zhugao.cn");
播放器在 8.0 以上可以使用通配符 “*” 来允许所有域:
System.security.allowDomain("*");
解决:”FLASH3.0安全沙箱” 问题的方法二:
利用JS脚本绕过安全沙箱(有待验证,如果可以也不失为一种体面的解决办法!)
Flash作为一种客户端的前台脚本技术,本来是不应该赋予更强大的功能的。
但是随着Flash技术的发展,目前已然能够读xml文件,载入多媒体内容,
甚至直接与服务器端进行Socket通信。
当然,这些还不够,Flash与js,Flash与Flash之间也已然实现了交互通信。
这样导致的结果就是带来了大量令人头疼的安全问题。
于是Flash在它的AS3.0里提出了安全沙箱这一概念。
在未经授权的情况下,Flash默认状态是不允许进行跨域通信的,这样就使得Flash的安全可靠性得到了提高。
可同时也带来了意想不到的麻烦:我制作了一个Flash,在页面中用js脚本控制as脚本,然后使用FlashCS3的发布功能发布了该Flash,
上传到网站上后,问题出现了,此时Flash无论执行任何访问外界的as脚本均会提示安全沙箱问题!
即使是打开链接地址也会出现警告!
解决的办法很简单,连我自己后来都觉得很诧异:将调用Flash的参数:allowScriptAccess的值改为always即可。
例如:<param name="allowScriptAccess" value="always" />
用js来控制Flash的安全访问?是不是有点自欺欺人?
解决”安全沙箱冲突”的方法三:使用Asp.Net绕过As3的跨域安全沙箱
完全的文件转发,以极低的效率来解决了问题,基本无实用价值.作者有大段的代码就没有全部复制,请根据上面引用详细阅读。
As3的SandBox这点上有点让人感觉非常郁闷。
如果要取不同域上的文件(比如歌曲,图片等),当对方服务器没有crossdomain.xml的时候就会出现安全沙箱错误。
这点有点郁闷。
中午午饭后,想到这个问题,于是用Asp.Net写了个Web Proxy。通过Asp.Net进行资源的转发,解决了跨域的安全沙箱问题。
不过这个东东会加大服务器的带宽和计算压力~
解决”安全沙箱”的方法四:一种猥琐的图片跨域的方法似乎是利用了Flex本身的疏漏来达到特定访问图片的方法,但由于作者代码的不完全,作为初学的我还无法完全理解他的思路,还请大家指教这个。
今天看到达达(ASFlex)的博文,关于跨域的问题,突然想起来我之前[原]淘宝店家起义篇。。。要做的实验之一,遂趁当前下班时间,在公司里写了一段测试代码。
果然是无法Draw的,在帮助文档已经明确的写了......................................
如何突破呢? 还是以后直接拿TextField来用?
以此标记,下回,改用AVM1+AVM2混合内容测试
目前方法是猥琐的抽出Loader来用
测试连接:
www.xintend.com/temp/icd/index.html
有兴趣的同学可以去玩下~~ 图片可以拖动~~~~~~~
核心 代码部分:
01. function handleLoadBtn():void {
02. var s:String = urlInput.text;
03. var ht:String = "<img src='";
04. if (s.length > 0) {
05. ht += s;
06. ht += "' ";
07. ht += "id='image'>";
08. tf.htmlText = ht;
09. output.text = ht;
10. output.text += "\n";
11. output.text += tf.getImageReference("image");
12. var c:DisplayObject = tf.getImageReference("image"); 1
3. ui.addChild(c);
14. output.text += "\n ui.addChild(c);";
15. }
16. }
解决本地的安全沙箱,我本地测试的时候倒没遇到过!
经常在本机调试flash的时候,会报安全沙箱问题,除了去adobe的网站(www.macromedia.com/suppor ... ings_manager04.html)上添加本机的目录外,还可以有一种更简单的办法,
[color=red]在C:\windows\system32\Macromed\Flash\FlashPlayerTrust 下面,添加一个txt文件,例如songhuan .txt,然后在里面添加你的本机的目录,例如f:\songhuan\ 或者c:\都可以。以后在哪里报错了,就在这个文件里添加路径就可以了。[/color]