WebORB for Rails+Flashデモ
WebORB for Railsで、FlashとRails(このブログ)をつないでみました。日本語の問題は、escape/unescapeで、しのいでます。
このFlashは、Remoting(AMF)経由でRailsに接続しています(が信じてもらえますか?)。このブログの最新記事のタイトルを取ってきてアニメーション。クリックするとその記事にジャンプ。
以前触ってみたWebORBですが、「他の機能と共存できない」不具合は解消していたので、再度使ってみました。やってることは前回と変わりません。日本語文字化けは、escape/unescapeして、とりあえず逃げてます。
サービス側(Rails)
class BlogService
def getRecent()
articles_recent = Article.find_by_sql "select id, title from articles~"
articles_recent.each { |a| a["title"]=CGI.escape(a["title"]) }
end
end
def getRecent()
articles_recent = Article.find_by_sql "select id, title from articles~"
articles_recent.each { |a| a["title"]=CGI.escape(a["title"]) }
end
end
クライアント側(Flash)
var service
= new Service( URL_BASE+"/weborb", null, 'BlogService', null , null);
var pc:PendingCall = service.getRecent();
pc.responder = new RelayResponder(this, "handleResult", "handleError");
function handleResult(re:ResultEvent){
var rs = re.result;
for( var i = 0; i < rs.length; i++ ){
var o = rs[i];
trace(o['id'] + ":" + unescape(o['title']));
}
}
= new Service( URL_BASE+"/weborb", null, 'BlogService', null , null);
var pc:PendingCall = service.getRecent();
pc.responder = new RelayResponder(this, "handleResult", "handleError");
function handleResult(re:ResultEvent){
var rs = re.result;
for( var i = 0; i < rs.length; i++ ){
var o = rs[i];
trace(o['id'] + ":" + unescape(o['title']));
}
}
ヨシヨシ、FlashのサーバサイドにRailsを使うことができました!
(日本語問題は、おとなしく待ちます)。
Cafe de Ryubanで使ったAMFPHPよりは、遥かにラク。なんといっても、Railsのモデルがそのまま使えるのが、うれしい。
Rails+Flashは、デザイナさん主体のプロジェクトにとっては、理想的なフレームワークではないでしょうか。今は、適用できるプロジェクトが想像できませんが、もっとレンタルサーバとかにRailsが普及してほしいです。こんなに便利なのだから。

