【ハウツー】
Merapiのベータ版をダウンロードするには、まずプロジェクトサイトよりユーザ登録を行う必要がある。登録後、自動送信の確認メールが届くが、この時点ではまだアカウントは作成されていない。どうやらアカウントの作成は手動で行っているらしく、完了するまでにしばらく時間がかかるので気長に待つのがいいだろう(筆者の場合、申請から完了まで10日かかった)。
アカウントの登録が完了したらログインしてダウンロードすることが可能となる。ダウンロードページには「Merapi Beta 1」と「Merapi Alpha RC 01」があるが、Beta 1の方が最新版である。また、その他にMac OS X用のサンプルプログラムが公開されている。
Beta 1をダウンロードして展開すると、frameworkディレクトリ内にJava用とFlex用のそれぞれのライブラリが格納されている。これらのライブラリを利用してJavaとAIRアプリケーションの連携を実現する。なお、それぞれのAPIドキュメントはdocディレクトリ以下にある。
Merapiの簡単な利用方法は公式サイトにも掲載されている。例えばAIRのActionScriptからメッセージを送るには、MessageクラスとBridgeクラスを用いて次のように行う。
var message : Message = new Message();
message.data = "Hello from Merapi Flex.";
message.type = "Reply";
Bridge.instance.sendMessage(message);
Messageは交換するデータを格納するためのクラスで、typeプロパティには任意のメッセージタイプをString型で、dataプロパティには送りたいデータをObject型で指定する。上記の方法以外に、コンストラクタの第一引数にメッセージタイプを、第二引数にデータを直接指定してインスタンスを生成する方法もある。Bridgeはメッセージ交換のブリッジの役割を果たすクラスである。
Java側からメッセージを送信するには次のようにする。ActionScriptの場合と同様に、Messageクラスのコンストラクタに直接メッセージタイプとデータを指定する方法もある。
Bridge bridge = Bridge.getInstance();
Message message = new Message();
message.setData("Hello from Merapi Java.");
message.setType("Reply");
bridge.sendMessage(message);
一方、送られたメッセージを受け取るには、Flex側では次のように記述する。
<merapi:BridgeInstance id="bridge" result="handleResult(event)" />
<mx:Script>
<![CDATA[
private function handleResult(event : ResultEvent) : void {
var message : IMessage = event.result as IMessage;
........
]]>
</mx:Script>
BridgeInstanceクラスはEventDispatcherであり、これを利用してメッセージを受信した際に発生するイベント(merapi.events.MerapiEvent)を受け取るためのハンドラを登録する。あとはそのハンドラ内でイベントオブジェクトからデータを取り出せばよい。
Java側でメッセージを受け取るには次のようにする。
Bridge.getInstance().registerMessageHandler("Reply", messageHandlerInstance);
public void handleMessage(IMessage message) {
System.out.println(((Message)message).getData());
}
こちらはBridgeオブジェクトに対してハンドラクラス(IMessageHandlerインタフェースの実装クラス)のインスタンスを登録する。IMessageHandlerインタフェースには実際のイベントハンドラとなるhandleMessage()メソッドが定義されているので、これを実装して受け取ったメッセージを処理すればよい。
| 天の川のブラックホールが小惑星を飲み込んでいる - NASAが発表 [18:08 2/10] |
| マイナビ、3月より書籍連動型のクリエイティブ・デザイン系セミナー開講 [12:00 2/10] |
| Linux Mint 12 KDE登場 [10:26 2/10] |
| Dell、重複排除により最大98%のデータ削減が可能なバックアップストレージを発売 [09:44 2/10] |
| 北大、「ポジトロン断層撮影法」による脳腫瘍の性質を診断する手法を開発 [09:40 2/10] |
|
天の川のブラックホールが小惑星を飲み込んでいる - NASAが発表 [18:08 2/10] エンタープライズ |
|
カシオ、子供の入園/入学にぴったりな[お名前・似顔絵シール]印刷サービス [17:38 2/10] 家電 |
|
[次にくるマンガ特集]ニコニコ静画でランキング上位の第1話を無料配信 第1弾「ドリフターズ」 [17:29 2/10] ホビー |
|
坂ノ睦と中原開平、ゲッサンで2名の新連載がスタート [17:22 2/10] ホビー |
|
TVウォッチャーの芸能まるごと1週間 - メイサ&赤西結婚、花子妊娠に沸いた [17:10 2/10] エンタメ |