·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]allowDomain(security.allowDomain 方法)官方说明

时间:2015-08-28 09:27酷播
[AS3]allowDomain(security.allowDomain 方法)官方说明crossDomain,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 的对象和变量。
 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器