Flash Player 6;行为在 Flash Player 7 中进行了更改。
receiving_lc
.allowDomain = function([sendingDomain
]
) { // 您在此处输入的语句返回 true 或 false }
sendingDomain
可选参数,指定包含发送方 LocalConnection 对象的 SWF 文件的域。
无。
事件处理函数;每当 receiving_lc
从发送方 LocalConnection 对象收到调用方法的请求时调用。Flash 需要您在此处理函数中实现的代码返回布尔值 true
或 false
。如果此处理函数没有返回 true
,则将忽略发送方对象的请求,并且不调用方法。
使用此命令可从指定域或任何域中显式允许 LocalConnection 对象执行接收方 LocalConnection 对象的方法。如果没有声明 sendingDomain
参数,则可能需要接受任何域中的命令,并且处理函数中的代码将只为 return true
。如果您声明了 sendingDomain
,则可能需要将 sendingDomain
的值与要从中接受命令的域进行比较。以下示例将说明这两种实现方式。
在 Flash Player 6 中运行的文件中,sendingDomain
参数包含调用方的超域。在 Flash Player 7 或更高版本中运行的文件中,sendingDomain
参数包含该调用方的确切的域。在后一种情况中,若要允许由在 www.domain.com 或 store.domain.com 承载的 SWF 文件访问,您必须显式允许从这两个域的访问。
// 对于 Flash Player 6receiving_lc
.allowDomain = function(sendingDomain) { return(sendingDomain=="domain.com"); } // 允许在 Flash Player 7 或更高版本中运行的 SWF 文件 // 访问的相应命令receiving_lc
.allowDomain = function(sendingDomain) { return(sendingDomain=="www.domain.com" || sendingDomain=="store.domain.com"); }
此外,对于在 Flash Player 7 或更高版本中运行的文件,您不能使用此方法允许使用安全协议 (HTTPS) 承载的 SWF 文件可以从使用非安全协议承载的 SWF 文件访问;必须改用 LocalConnection.allowInsecureDomain 事件处理函数。
以下示例显示接收方 SWF 文件中的 LocalConnection 对象如何允许任何域中的 SWF 文件调用其方法。将其与 LocalConnection.connect()
中的示例进行比较,在该示例中,只有来自同一个域中的 SWF 文件才能调用接收方 SWF 文件中的 Trace
方法。有关下划线 (_) 在连接名称中的用法的讨论,请参见 LocalConnection.send()
。
var aLocalConnection = new LocalConnection(); aLocalConnection.Trace = function(aString) { aTextField = aTextField + aString + newline; } aLocalConnection.allowDomain = function() { // 任何域均可对此 LocalConnection 对象调用方法 return true; } aLocalConnection.connect("_trace");
在以下示例中,接收方 SWF 文件只接受来自位于 thisDomain.com 或 thatDomain.com 中的 SWF 文件的命令。
var aLocalConnection = new LocalConnection(); aLocalConnection.Trace = function(aString) { aTextField = aTextField + aString + newline; } aLocalConnection.allowDomain = function(sendingDomain) { return(sendingDomain=="thisDomain.com" || sendingDomain=="thatDomain.com"); } aLocalConnection.connect("_trace");
LocalConnection.connect()、LocalConnection.domain()、LocalConnection.send()