LocalConnection.allowDomain

可用性

Flash Player 6;行为在 Flash Player 7 中进行了更改。

用法

receiving_lc.allowDomain = function([sendingDomain]) {
  // 您在此处输入的语句返回 true 或 false
}

参数

sendingDomain 可选参数,指定包含发送方 LocalConnection 对象的 SWF 文件的域。

返回

无。

说明

事件处理函数;每当 receiving_lc 从发送方 LocalConnection 对象收到调用方法的请求时调用。Flash 需要您在此处理函数中实现的代码返回布尔值 truefalse。如果此处理函数没有返回 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 6
receiving_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()