[AS3]allowDomain(security.allowDomain 方法)官方说明
allowDomain(security.allowDomain 方法)
public static allowDomain(domain1:String) : Void
允许所标识的域中的 SWF 文件和 HTML 文件访问执行调用的 SWF 文件中的对象和变量,或者是与执行调用的 SWF 文件位于同一域的任何其他 SWF 文件中的对象和变量。
在 Flash Player 7 或更高版本中播放的文件中,传递的参数必须遵守完全域命名规则。例如,若要允许位于 www.domain.com 或 store.domain.com 的 SWF 文件进行访问,则必须传递这两个域名:
// For Flash Player 6
System.security.allowDomain("domain.com");
// Corresponding commands to allow access by SWF files
// that are running in Flash Player 7 or later
System.security.allowDomain("www.domain.com", "store.domain.com");
此外,对于在 Flash Player 7 或更高版本中运行的文件,您不能使用此方法让使用安全协议 (HTTPS) 承载的 SWF 文件允许来自使用非安全协议承载的 SWF 文件的访问;必须改用 System.security.allowInsecureDomain() 事件处理函数。
您可能偶尔会遇到以下情况:您从另一个域中加载一个子级 SWF 文件,并想允许该子级 SWF 文件对父级 SWF 文件的脚本进行操作,但您不知道该子级 SWF 文件来自哪个最终域。例如,当您使用加载平衡重定向或第三方服务器时就可能发生这种情况。
在这种情况下,您可以使用 MovieClip._url 属性作为此方法的参数。例如,如果您将 SWF 文件加载到 my_mc 中,则可以调用 System.security.allowDomain(my_mc._url)。
如果您这样做的话,请务必等待 my_mc 中的 SWF 文件加载完毕,因为只有在该文件完全加载后,_url 属性才会具有其最终的正确值。最好是使用 MovieClipLoader.onLoadComplete 确定子级 SWF 何时完成加载。
也可能出现相反的情况;即,您可能创建一个子级 SWF 文件,并允许其父级编辑该子级 SWF 文件,但不知道该父级将来自哪个域。在这种情况下,请从子级 SWF 调用 System.security.allowDomain(_parent._url)。在这种情况下,您不必等待父级 SWF 文件加载;加载子级时,父级已经加载完毕。
可用性
Flash Lite 2.0
参数
domain1:String - 一个或多个字符串,指定可以访问包含 System.Security.allowDomain() 调用的 SWF 文件中的对象和变量的域。 可以按照以下格式指定域:
"domain.com"
"http://domain.com"
"http://IPaddress"
示例
位于 www.macromedia.com/MovieA.swf 的 SWF 文件包含以下行:
System.security.allowDomain("www.shockwave.com");
loadMovie("http://www.shockwave.com/MovieB.swf", my_mc);
由于 MovieA 包含 allowDomain() 调用,所以 MovieB 可以访问 MovieA 中的对象和变量。如果 MovieA 不包含此调用,则 Flash 安全实施机制将禁止 MovieB 访问 MovieA 的对象和变量。
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- [AS3]as3.0的sound类常用技巧整理
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例