ActionScript 2.0 Language Reference |
|
|
|
| ActionScript classes > LocalConnection > domain (LocalConnection.domain method) | |||
public domain() : String
Returns a string representing the domain of the location of the current SWF file.
In SWF files published for Flash Player 6, the returned string is the superdomain of the current SWF file. For example, if the SWF file is located at www.adobe.com, this command returns "adobe.com".
In SWF files published for Flash Player 7 or later, the returned string is the exact domain of the current SWF file. For example, if the SWF file is located at www.adobe.com, this command returns "www.adobe.com".
If the current SWF file is a local file residing on the client computer, this command returns "localhost".
The most common way to use this command is to include the domain name of the sending LocalConnection object as a parameter to the method you plan to invoke in the receiving LocalConnection object or with LocalConnection.allowDomain to accept commands from a specified domain. If you are enabling communication only between LocalConnection objects that are located in the same domain, you probably don't need to use this command.
Availability: ActionScript 1.0; Flash Player 6 - Behavior changed in Flash Player 7.
String - A string representing the domain of the location of the current SWF file; for more information, see the Description section.
In the following example, a receiving SWF file accepts commands only from SWF files located in the same domain or at adobe.com:
// If both the sending and receiving SWF files are Flash Player 6,
// then use the superdomain
var my_lc:LocalConnection = new LocalConnection();
my_lc.allowDomain = function(sendingDomain):String{
return (sendingDomain==this.domain() || sendingDomain=="adobe.com");
}
// If either the sending or receiving SWF file is Flash Player 7 or later,
// then use the exact domain. In this case, commands from a SWF file posted
// at www.adobe.com will be accepted, but those from one posted at
// a different subdomain, e.g. blogs.adobe.com, will not.
var my_lc:LocalConnection = new LocalConnection();
my_lc.allowDomain = function(sendingDomain):String{
return (sendingDomain==this.domain() || sendingDomain=="www.adobe.com");
}
In the following example, a sending SWF file located at www.yourdomain.com invokes a method in a receiving SWF file located at www.mydomain.com. The sending SWF file includes its domain name as a parameter to the method it invokes, so the receiving SWF file can return a reply value to a LocalConnection object in the correct domain. The sending SWF file also specifies that it will accept commands only from SWF files at mydomain.com.
Line numbers are included for reference purposes. The sequence of events is described in the following list:
"sum" (line 11). The Flash Player resolves the name of this connection to "mydomain.com:sum" (see LocalConnection.connect())."result" (line 67). It also specifies that it will accept commands only from SWF files at mydomain.com (lines 51 to 53). aSum method of a connection named "mydomain.com:sum" (line 68) and passes the following parameters: its superdomain, the name of the connection to receive the reply ("result"), and the values to be used by aSum (123 and 456).aSum method (line 6) is invoked with the following values: sender = "mydomain.com:result", replyMethod = "aResult", n1 = 123, and n2 = 456. It then executes the following line of code:
this.send("mydomain.com:result", "aResult", (123 + 456));
aResult method (line 54) shows the value returned by aSum (579).
// The receiving SWF at http://www.mydomain.com/folder/movie.swf
// contains the following code
1 var aLocalConnection:LocalConnection = new LocalConnection();
2 aLocalConnection.allowDomain = function()
3 {
// Allow connections from any domain
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");
// The sending SWF at http://www.yourdomain.com/folder/movie.swf
// contains the following code
50 var lc:LocalConnection = new LocalConnection();
51 lc.allowDomain = function(aDomain) {
// Allow connections only from mydomain.com
52 return (aDomain == "mydomain.com");
53 }
54 lc.aResult = function(aParam) {
55 trace("The sum is " + aParam);
56 }
// determine our domain and see if we need to truncate it
57 var channelDomain:String = lc.domain();
58 if (getVersion() >= 7 && this.getSWFVersion() >= 7)
59 {
// split domain name into elements
60 var domainArray:Array = channelDomain.split(".");
// if more than two elements are found,
// chop off first element to create superdomain
61 if (domainArray.length > 2)
62 {
63 domainArray.shift();
64 channelDomain = domainArray.join(".");
65 }
66 }
67 lc.connect("result");
68 lc.send("mydomain.com:sum", "aSum", channelDomain + ':' + "result",
"aResult", 123, 456);
allowDomain (LocalConnection.allowDomain handler), connect (LocalConnection.connect method)
|
|
|
|