LocalConnection.connect()

可用性

Flash Player 6。

用法

receiving_lc.connect(connectionName)

参数

connectionName 一个字符串,对应于要与 receiving_lc 通讯的 LocalConnection.send() 命令中所指定的连接名称。

返回

如果在同一台客户机上运行的其它进程均未使用 connectionName 参数的相同值发出此命令,则返回布尔值 true;否则返回 false

说明

方法;准备 LocalConnection 对象,以从 LocalConnection.send() 命令(称作“发送方 LocalConnection 对象”)中接收命令。与此命令一起使用的对象称作“接收方 LocalConnection 对象”。接收方对象和发送方对象必须在同一台客户机上运行。

务必要先定义附加到 receiving_lc 的方法,然后再调用此方法,如本节的所有示例所示。

默认情况下,Flash Player 将 connectionName 解析为 "superdomain:connectionName" 格式的值,其中 superdomain 是包含 LocalConnection.connect() 命令的 SWF 文件的超域。例如,如果包含接收方 LocalConnection 对象的 SWF 文件位于 www.someDomain.com,则 connectionName 解析为 "someDomain.com:connectionName"。(如果 SWF 文件位于客户机上,则赋予 superdomain 的值为 "localhost"。)

此外,在默认情况下,Flash Player 只允许接收方 LocalConnection 对象从其连接名称也解析为 "superdomain:connectionName" 的值的发送方 LocalConnection 对象中接受命令。这样,Flash 就使得位于同一个域中的 SWF 文件可以很容易地相互通讯。

如果您仅在同一个域中的 SWF 文件之间实现通讯,请为 connectionName 指定一个不以下划线 (_) 开头且不指定域名的字符串(例如 "myDomain:connectionName")。在
LocalConnection.connect(connectionName) 命令中使用相同的字符串。

如果您在位于不同域的 SWF 文件之间实现通讯,请参见 LocalConnection.send() 中对
connectionName 的讨论,以及 LocalConnection.allowDomainLocalConnection.domain() 条目。

示例

以下示例显示特定域中的 SWF 文件如何调用同一域的接收方 SWF 文件中名为 Trace 的方法。接收方 SWF 文件充当发送方 SWF 文件的跟踪窗口;它包含其它 SWF 文件可以调用的两个方法:Trace 和 Clear。在发送方 SWF 文件中所按的按钮以指定的参数调用这些方法。

// 接收方 SWF
var aLocalConnection = new LocalConnection();
aLocalConnection.Trace = function(aString)
{
  aTextField = aTextField + aString + newline;
}
aLocalConnection.Clear = function()
{
  aTextField = "";
}
aLocalConnection.connect("trace");
stop();

SWF 1 包含附加到带 PushMe 标签的按钮的以下代码。当您按该按钮时,将在接收方 SWF 文件中看到句子“已按下该按钮”。

on (press)
{
  var lc = new LocalConnection();
  lc.send("trace", "Trace", "已按下该按钮。");
  delete lc;
}

SWF 2 包含变量名为 myText 的输入文本框以及附加到带标签 Copy 的按钮的以下代码。在您键入一些文本并按该按钮后,将在接收方 SWF 文件中看到您键入的文本。

on (press)
{
  _parent.lc.send("trace", "Trace", _parent.myText);
  _parent.myText = "";
}

SWF 3 包含附加到带标签 Clear 的按钮的以下代码。当您按该按钮时,将清除(擦除)接收方 SWF 文件的跟踪窗口中的内容。

on (press)
{
  var lc = new LocalConnection();
  lc.send("trace", "Clear");
  delete lc;
}

另请参见

LocalConnection.send()