加载到页面的flash需要和当前页面上的js通讯的时候,如果是js和flash在同一个域那就没有安全错误发生
如果不在同一个域就会有安全错误发生。
不在同一个域的flash和js跨域访问的时候 ,可以用下列方式解决跨域问题
要在页面上添加参数行:<param name="allowScriptAccess" value="always" />
要在flash 中添加这行代码: Security.allowDomain("*")
但是要注意,如果flash和js这两者都不使用缓存的时候,是没问题的。如果flash使用缓存而js不使用缓存,就会出现另一个奇妙的问题: 清空缓存后打开页面flash不报错,而后刷新页面, 就会报安全错误
这个安全错误就让他叫做伪沙箱安全错误吧
这个错误的解决方案是:
flash 初始化客户端(初始化中)完后,先不要调用js相关的任何代码或功能(包括ExternalInterface相关的api)
然后等待一段时间(例如200毫秒)后在调用与js相关的代码或功能,就不会报错了