AIR同士のアプリケーション間通信

2009年1月22日 12:52 action script,air — littlepad

AIRアプリ間の通信にはflash.net.LocalConnectionクラスを使用する。
送信側アプリで入力したテキストを受信側に送信するサンプルコード。

■送信側コードサンプル抜粋

private var _sendCon:LocalConnection;

private function setConnection():void {
	_sendCon = new LocalConnection();

	_sendCon.addEventListener(StatusEvent.STATUS,
		function(event:StatusEvent):void {
			switch (event.level) {
				// 正常に送信完了
				case "status":
					debugTextField.text = "正常に送信完了";
					break;
				// エラー
				case "error":
					debugTextField.text = "送信エラーが発生しました。";
					break;
			}
		});
}

public function conSend():void {
	_sendCon.send("app#jp.xxxx.dataReceive.B146A943FBD637B68C334022D304CEA226D129B4.1:myConnection", "onReceive", inputTextField.text);
}

sendメソッドに渡す引数は以下の通り。

_sendCon.send(“接続名”, “受信側のメソッド名”, 引数…)

接続名の前には送信先アプリケーションIDと発行者IDと接続名を以下の書式で追加して指定する。

「app#送信先アプリケーションID.発行者ID:接続名」

上記のサンプルコードでは各々以下のような設定となっている。
送信先アプリケーションID: jp.xxxx.dataReceive
発行者ID: B146A943FBD637B68C334022D304CEA226D129B4.1
接続名: myConnection

※発行者IDはAIRアプリがインストールされるディレクトリ内にある「META-INF/AIR/publisherid」に記述されている。

■受信側コードサンプル抜粋

private var _rcvCon:LocalConnection;

private function setConnection():void {
	_rcvCon = new LocalConnection();
	//_rcvCon.allowDomain("*");
	_rcvCon.allowDomain("app#jp.xxxx.dataSend.B146A943FBD637B68C334022D304CEA226D129B4.");
	_rcvCon.addEventListener(AsyncErrorEvent.ASYNC_ERROR, onAsyncError);
	_rcvCon.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
	_rcvCon.client = this;
	_rcvCon.connect("myConnection");
}

public function onReceive(str:String):void {
	receiveTextField.text = str;
}

allowDomainメソッドの引数には接続を許可するアプリケーションIDを以下の書式で設定する。

「app#送信先アプリケーションID.発行者ID」

上記のサンプルコードでは各々以下のような設定となっている。
送信元アプリケーションID: jp.xxxx.dataSend
発行者ID: B146A943FBD637B68C334022D304CEA226D129B4.1

ワイルドカードの指定の場合、全ての接続を許可する。
allowDomain(“*”)

上記サンプルは、送信側と受信側に分かれた一方通行な送信だが、
双方向通信を行う場合は、両方に送受信の設定をすればよい。
この場合、接続名は両方同じになる。

参考)

追記)
FLASH間の双方向通信を簡易にするクラスFlashLCSというものが出たらしい。
まだ未使用だが、便利そうなので機会があれば使ってみたい。
http://blog.alt-scape.com/archives/296

コメントはまだありません

No comments yet.

TrackBack URL

Leave a comment

about

ハンドルネーム:littlepad
都内で WEB 制作(デザイン, html/css, Flash, MT, WordPress etc)をしているBOØWY研究家

category:

search:


archives:

GO TO PAGETOP