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の中に自動的に入れられ、
bbs.mxmlの変数としてcurrentMessageを宣言しています。ここにサーバーから返された新規MessageBeanオブジェクトを代入しておきます。
次に、ハードコーディングされているMessageBeanのプロパティ部分を、このcurrentMessageのプロパティに置き換えます。
たとえば
と書いていた部分を
と修正します。