Flex・RemoteObject用のユーティリティクラス

「WEBあしか」にて実際に使っている通信用のライブラリ"RemoteUtil"を公開してみます。
RemoteUtilソースファイル(github)

RemoteUtilとは?

RemoteUtilとは、Flexのライブラリの一つである"RemoteObject"をラップし、さらにつかいやすくしたライブラリです。

RemoteUtilには以下の特徴があります。

  • ResultイベントとFaultイベントを毎回設定する必要がない
    • RemoteObjectを使う際、ResultイベントとFaultイベントを毎回設定するのはとても面倒です。ですがRemoteUtilではライブラリ内で一元的にRemoteObjectにResult・Faultイベントを設定しているため、毎回設定する必要はありません。
    • またdebugフラグをONにしている場合、FaultイベントのエラーメッセージがAlertで表示されるようになっているため、デバックも楽に行えます。
  • リトライ処理を簡単に実装可能!
    • 不安定なサーバーとの間で通信を行う場合、確実に通信をするために、失敗時にリトライ処理を行うのはもっともオーソドックスな手段です。ですが実際に実装しようとすると、全ての通信処理でリトライ処理を実装するのは中々骨の折れる作業となります。そんなときでもRemoteUtilを使えば簡単にリトライ処理を実装することができます。

ではここで実際の使用例を記載していきます。

  • 基本となる使用例
var data:Object = null;
var remoteUtil:RemoteUtil = new RemoteUtil('destinationIDをここに指定');
remoteUtil.resultEvent = function (event:ResultEvent):void {
	// 通信成功時の処理
	// thisからRemoteUtilのプロパティにアクセスすることができます。
	data = event.result; // データの取得例
};
remoteUtil.faultEvent = function ():void {
	// 通信失敗時の処理
}
remoteUtil.remoteEvent = function ():void {
	// RemoteObject処理
	// イベント内のthis.remoteでRemoteObjectにアクセスできます
	this.remote.getData();
};
// 通信の開始(remoteEventプロパティに設定したイベントが実行されます)
remoteUtil.start();

上記例では各イベント処理を設定していますが、remoteEvent以外のイベントは必須ではありませんので設定しなくても問題ないです。

  • オプションの設定

上記例と合わせて記述することで複雑な処理を実行させることが可能です。

// ※いずれのオプションもstartメソッドを実行する前に設定してください。

// 通信の結果として返ってきた値がnullもしくは空文字だった場合にエラーを表示することが出来ます。
remoteUtil.showResultErrorMessage = true;
remoteUtil.resultErrorMessage = "データの取得ができませんでした。\nページをリロードして再度表示してみてください。";
// retryプロパティをtrueに設定すると、通信の失敗時に自動的にリトライ処理が行われます。
// リトライの回数はretryNumで設定することができます。
remoteUtil.retry = true;
remoteUtil.retryNum = 3;

この他のオプションに関しては、ソース内にて解説していますのでそちらをご覧ください。

うたちゃく!更新情報

トップページの表示項目などを追加しました。
更新内容

  • トップページに「所有登録数の多いユーザー」を表示するようにしました。
  • CD・アーティスト検索時にオートコンプリートが表示されるようにしました。
  • 要望・バグ報告フォームに「要望・バグの区分」の項目を追加しました。

うたちゃく!更新情報

ユーザー登録・ユーザーページ周りの大きな変更をしました。

更新内容

  • ユーザーの新規登録ページの入力項目を大幅に減らしました。
  • ユーザー登録完了後に、自動ログインするためのリンクを表示するようにしました。
  • プロフィール設定の変更ページにて変更できる項目を増やしました。

|うたちゃく!更新情報

某所で指摘された箇所や、内部的な部分を修正しました。

  • メールアドレスでのログインに対応しました。
  • 登録してすぐのユーザーページに説明文を表示するようにしました。
  • CD,アーティスト検索時に登録されていないアーティストで検索した場合、そのアーティストの登録申請のリンクを張るようにしました。
  • AmazonリンクのURLを短縮しました。
  • 生年月日の日付整合性チェックが抜けていたため、実装しました。