feb19.jp blog - life is creative!

Flash RemotingとAMF

ブックマークに追加する tags:      

Flash RemotingとAMF

ユーザー参加型コンテンツのFlashコンテンツを作成する場合、サーバーサイドプログラムとの連携は必須になります。Flash RemotingでAMFを使った連携方法についてまとめてみました。

ユーザー参加型コンテンツを作成する場合、Flashはサーバー側のデータベースやサーバーサイドプログラムと通信を行う必要があります。簡単な通信の場合、.getURL()や.loadVariables()、または.sendAndLoad()などを用いることが可能ですが、これらの場合、通信できるデータ量に制限があったり、とくにXMLなどを用いた通信では無駄なデータを送って無駄に処理を取られてしまうため、ネットワークの大域幅を効率的に利用できないなど、大規模なコンテンツには向いていません。そこでFlash RemotingとAMFの登場です。

Adobe(Macromedia)から配布されているFlash Remotingを使います。Flash Remotingでは、サーバーサイドプログラムとのデータ連携が容易で、ColdFusionやJavaや.NETの変数やメソッドを直で呼び出せたり、バイナリやオブジェクト型で渡せたり、ログを記録したり、エラー処理を返したり、パフォーマンスを改善できたりと様々なメリットがあります。

Flash Remotingをインストールしたら、以下のような記述をActionScriptで行います。

import mx.remoting.Service;
import mx.remoting.PendingCall;
import mx.rpc.RelayResponder;
import mx.rpc.ResultEvent;
import mx.rpc.FaultEvent;
import mx.remoting.debug.NetDebug;
 
//デバッガの初期化
NetDebug.initialize();
 
//Serviceインスタンスの生成
var remoteURL:String = "http://localhost/flashservices/gateway";
var remoteServicePath:String = "greetingService";
var remoteService:Service = new Service(remoteURL, null, remoteServicePath);
 
//PendingCallインスタンス生成、Remoteサービス呼び出し
var pc:PendingCall = remoteService.greeting('Hello, World!!');
//結果を受け取るRelayResponderインスタンス生成。第二引数と第三引数に結果を処理する関数名をとる
pc.responder = new RelayResponder(this, "greeting_Result","greeting_Fault");
 
//結果表示時に呼び出されるファンクション
function greeting_Result(myResult:ResultEvent){
theMessage.text = myResult.result;
}
 
//エラー時に呼び出されるファンクション
function greeting_Fault(myFault:FaultEvent){
theMessage.text = myFault.fault.faultstring;
}

こーんな感じのスクリプトで素敵にAMFの通信が可能になります。詳しい内容はLiveDocsが参考になります。 PHPと連携させたい場合は、有志で作成されたAMF PHPもあります。

Flash CS3用のRemotingコンポーネントはまだ公式に公開されていませんが、OZACCさんが自作されたRemotingライブラリを公開なさっています。(OZACC.blog:Remoting Classes for Flash CS3 ActionScript 3.0)

2007年07月13日00:52

Webデザインブログ

「Flash RemotingとAMF」の関連エントリー

 iTunes Store(Japan)

コメント (1)

YTh8Mi intyequl akrcshd zatbsdn lunksc ojihu ugkffni lperisg kcylddrd ottik rhrijwmra gfwzcfkd notvz eqexiscw exjtkka

コメントを投稿

トラックバック

このエントリーのトラックバックURL:
http://feb19.jp/mt/mt-tb.cgi/80

Navigation

古:ランタイムビットマップキャッシュ(.cacheAsBitmap)
新:Flash プロフェッショナル・スタイル CS3対応
トップページ

Recently Entries
Mac でファイルの関連付けを変える(Mac で AIR アプリがアップデート出来ないを解決する方法)
ファイルを右クリックして「情報を見る」を選び、表示されたウィンドウの...
Mac OS X 10.6 Snow Leopard から入ってるフォント「Menlo」がコーディング作業にいい感じ
Xcode でコード書いているとき、Eclipse でコード書くより...
AIR で JSON 形式ファイルの入出力
AIR 祭り開催中。今回はファイル入出力。AS3 で扱っている Ob...
Adobe CS5 ティザーサイトオープン
カウントダウンが始まっています。いよいよ CS5 ですね。globa...
AIR でファイルがドラッグアンドドロップされたことを NativeDragEvent で検知する
最近また AIR が楽しい気がして触っているのですが、 Google...
iPhone アプリ "iBeat - BPM Counter" を発売しました & iPhone インタラクションデザインについて
BPM 計測アプリです。既に似たようなアプリはいくつか発売されている...
AS3 の演算子 ||= について
AS3 だけでつかえるものではないのですが、AS3 での動作を確認し...
iPhone SDK 「カテゴリ」について+NSString の空白文字を除去する
Objective-C では、高位のフレームワークで、低位のフレーム...
Flash CS4 で Flex SDK (mx パッケージ、クラス) を使う
Flex 用のライブラリとかを見ると mx パッケージとか使われてい...
Flash CS5 を予習 ~Text Layout Framework (TLF) 編~
Text Layout Framework (TLF) を使って、F...