LocalConnection クラスを使用すると、異なる AIR アプリケーション間でも、ブラウザーで実行される異なる Adobe® Flash® Player(SWF)アプリケーション間でも通信できます。また、LocalConnection クラスを使用して、AIR アプリケーションとブラウザーで実行される SWF アプリケーションとの間で通信することもできます。
次のコードでは、サーバーとして動作し、他のアプリケーションから受信する LocalConnection 呼び出しを受け付ける LocalConnection オブジェクトを定義します。
var lc = new air.LocalConnection();
lc.connect("connectionName");
var clientObject = new Object();
clientObject.echoMsg = function(msg) {
air.trace("This message was received: " + msg);
}
lc.client = clientObject;
このコードでは、まず、
lc
という LocalConnection オブジェクトを作成し、
client
プロパティを
clientObject
オブジェクトに設定します。この LocalConnection インスタンスのメソッドを別のアプリケーションが呼び出すと、ランタイムは
clientObject
オブジェクトでそのメソッドを探します。
指定した名前の接続が既に存在する場合は Argument Error 例外がスローされます。この例外は、オブジェクトが接続済みであるために接続の試行が失敗したことを示します。
次のコードでは、
conn1
という名前を指定して LocalConnection を作成する方法を示します。
connection.connect("conn1");
第 1 のアプリケーションに第 2 のアプリケーションから接続するには、まず、送信側 LocalConnection オブジェクト内で LocalConnection オブジェクトを作成し、次に、接続名と実行するメソッドの名前を指定して
LocalConnection.send()
メソッドを呼び出す必要があります。例えば、前述の例で作成した LocalConnection オブジェクトに
doQuit
メソッドを送信するには、次のコードを使用します。
sendingConnection.send("conn1", "doQuit");
このコードでは、既存の LocalConnection オブジェクトに接続名
conn1
で接続し、リモートアプリケーションの
doMessage()
メソッドを呼び出しています。リモートアプリケーションにパラメーターを送信する場合は、次のコードに示すように、
send()
メソッドに対するメソッド名の指定の後に追加パラメーターを指定します。
sendingConnection.send("conn1", "doMessage", "Hello world");