Archives

You are currently viewing archive for November 2008
カテゴリ: FLASH (AS3)
投稿者: terada
引き続き、FMS上のSharedObjectいじってます。
気づいたのは、SharedObjectに配列を突っ込みたいとき、下記のような記述だとうまくいかないということ。
var array = new Array();
array.push( "hoge" );
myRemoteSO.setProperty( "myArray", array );

こういう場合は、下記のように記述するとすんなりいきました。
var array = new Array();
array.push( "hoge" );
myRemoteSO.data.myArray = array;
myRemoteSO.setDirty( "myArray" );

setDirty()の使いどころが少し分かりました。

そういえば、FMS上のどこにSharedObjectファイルが保存されるかという前エントリでの疑問。
今日、FTP覗いていたらいきなり「/applications/アプリ名/sharedobjects/_definst_/hoge.fso」なるファイルが作成されてました。けど、作成されるタイミングがいまいちよく分からないような・・・(依然、謎)。
カテゴリ: FLASH (AS3)
投稿者: terada
FMS(Flash Media Server)上のSharedObjectをgetRemote()を使って取得するテストをしていて躓きました。
ドキュメント通りのシンプルなコードしか書いてないのに、エラーエラー。で、ググってみるとこんな人がいて、そうかと思って
import flash.net.ObjectEncoding;

NetConnection.defaultObjectEncoding = ObjectEncoding.AMF0;

を追加するも、解決せず、もう一度よーくググって見たらこんな記事を発見!
そう、NetConnectionだけでなくSharedObjectのエンコーディングも合わせてやらなきゃならなかったのです(面倒!)。
import flash.net.ObjectEncoding;

NetConnection.defaultObjectEncoding = ObjectEncoding.AMF0;
SharedObject.defaultObjectEncoding = ObjectEncoding.AMF0;

これで、無事繋がりました!

けど、これはかなり見落としやすいと思う。ドキュメントに分かるように追加して欲しいレベルです。実際、僕はFMS周りの勝手が分からなかったので、しばらく路頭に迷いました。同じように最初の一歩ができなくて、悔しい思いをしている人の役に立ちますように・・・。
ところで、FMS上のSharedObjectファイルってどこに保存されてるのだろう。applicationsフォルダに作成されるんじゃないのかな?見当たらないんだけど・・・。まだこの辺の基本がよく分かってません。