RemoteObjectの定義をする

次に、bbs.mxmlにRemoteObjectの定義をします。ここでどのクラスのどのメソッドを実行するか等を定義します。

bbs.mxml(抜粋)

<!--  リモートオブジェクト  -->
<mx:RemoteObject id="remote" encoding="AMF" source="bbs.service.MessageService">
	<mx:method name="insertNewMessage" result="insertNewMessage_result(event)"
		fault="handleFault(event)"/>
</mx:RemoteObject>

method内のresultは、このメソッドの実行結果を処理するメソッドを記述し、faultはエラーが起きた時の扱いを記述します。
スクリプトに以下を追加します

bbs.mxml(抜粋)

var currentMessage:MessageBean;

function insertNewMessage_result(event):Void {
	currentMessage = event.result;
}

function insertNewMessage(tempMessage:MessageBean) : Void {
	remote.insertNewMessage(tempMessage);
}

function handleFault(event) : Void {
	mx.controls.Alert.show(event.fault.faultstring,'通信エラー')
}

insertNewMessage内でリモートオブジェクトのinsertNewMessageを呼びます。サーバーサイドの実行結果はevent.resultの中に自動的に入れられ、のresultで定義されたinsertNewMessage_result(event)がコールされます。
bbs.mxmlの変数としてcurrentMessageを宣言しています。ここにサーバーから返された新規MessageBeanオブジェクトを代入しておきます。


次に、ハードコーディングされているMessageBeanのプロパティ部分を、このcurrentMessageのプロパティに置き換えます。
たとえば

と書いていた部分を

と修正します。