Flash Player 6;行为在 Flash Player 7 中进行了更改。
my_lc
.domain()
无。
一个字符串,表示当前 SWF 文件的位置的域;有关详细信息,请参见下面的“说明”。
方法;返回表示当前 SWF 文件所在位置的域的字符串。
在以 Flash Player 6 为目标播放器发布的 SWF 文件中,返回的字符串是当前 SWF 文件的超域。例如,如果 SWF 文件位于 www.macromedia.com,则此命令将返回 "macromedia.com"
。
在以 Flash Player 7 或更高版本为目标播放器发布的 SWF 文件中,返回的字符串是当前 SWF 文件的确切域。例如,如果 SWF 文件位于 www.macromedia.com,则此命令将返回"www.macromedia.com"
。
如果当前 SWF 文件是驻留在客户机上的本地文件,此命令将返回 "localhost"
。
此命令最常见的用法是包含发送方 LocalConnection 对象的域名作为要在接收方 LocalConnection 对象中调用的方法的参数,或者与 LocalConnection.allowDomain 一起使用来接受来自指定域中的命令。如果您仅启用位于同一个域的 LocalConnection 对象之间的通讯,则可能不需要使用此命令。
在以下示例中,接收方 SWF 文件仅接受来自位于同一个域或位于 macromedia.com 的 SWF 文件的命令。
my_lc = new LocalConnection(); my_lc.allowDomain = function(sendingDomain) { return (sendingDomain==this.domain() || sendingDomain=="macromedia.com"); }
在下面的示例中,位于 yourdomain.com 的发送方 SWF 文件调用位于 mydomain.com 的接收方 SWF 文件中的方法。发送方 SWF 文件包含其域名作为它所调用的方法的参数,使接收方 SWF 文件能够返回对正确域中的 LocalConnection 对象的应答值。发送方 SWF 文件还指定它将只接受来自位于 mydomain.com 的 SWF 文件的命令。
为了便于参考,代码中包含了行号。事件的顺序如下:
"sum"
的连接(第 11 行)上接收命令。Flash Player 将此连"mydomain.com:sum"
(请参见 LocalConnection.connect())。"result"
的 LocalConnection 对象(第 58 行)上接收应答。它还指定它将只接受来自位于 mydomain.com 的 SWF 文件的命令(第 51 行到第 53 行)。 "mydomain.com:sum"
的连接的 aSum
方法(第 59 行),然后传递以下参数:它的域 (lc.domain()
)、接收应答的连接的名称 ("result"
) 和 aSum
所使用的值(123 和 456)。aSum
方法(第 6 行):sender = "mydomain.com:result"
、replyMethod
= "aResult"
、n1
= 123 和 n2
= 456。因此,它执行以下代码行:
this.send("mydomain.com:result", "aResult", (123 + 456));
aResult
方法(第 54 行)显示 aSum
返回的值 (579)。
// 位于 http://www.mydomain.com/folder/movie.swf 的接收方 SWF // 包含以下代码 1 var aLocalConnection = new LocalConnection(); 2 aLocalConnection.allowDomain = function() 3 { // 允许任何域中的连接 4 return true; 5 } 6 aLocalConnection.aSum = function(sender, replyMethod, n1, n2) 7 { 8 this.send(sender, replyMethod, (n1 + n2)); 9 } 10 11 aLocalConnection.connect("sum"); // 位于 http://www.yourdomain.com/folder/movie.swf 的发送方 SWF // 包含以下代码 50 var lc = new LocalConnection(); 51 lc.allowDomain = function(aDomain) { // 只允许 mydomain.com 中的连接 52 return (aDomain == "mydomain.com"); 53 } 54 lc.aResult = function(aParam) { 55 trace("The sum is " + aParam); 56 } 57 58 lc.connect("result"); 59 lc.send("mydomain.com:sum", "aSum", lc.domain() + ':'+ "result",
"aResult", 123, 456);