2008/11/27: setPropertyでArray型はsetでない
引き続き、FMS上のSharedObjectいじってます。
気づいたのは、SharedObjectに配列を突っ込みたいとき、下記のような記述だとうまくいかないということ。
こういう場合は、下記のように記述するとすんなりいきました。
setDirty()の使いどころが少し分かりました。
そういえば、FMS上のどこにSharedObjectファイルが保存されるかという前エントリでの疑問。
今日、FTP覗いていたらいきなり「/applications/アプリ名/sharedobjects/_definst_/hoge.fso」なるファイルが作成されてました。けど、作成されるタイミングがいまいちよく分からないような・・・(依然、謎)。
気づいたのは、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」なるファイルが作成されてました。けど、作成されるタイミングがいまいちよく分からないような・・・(依然、謎)。
2008/11/27: FMS上のSharedObjectをgetRemote()を使って取得する際のエラー解決
FMS(Flash Media Server)上のSharedObjectをgetRemote()を使って取得するテストをしていて躓きました。
ドキュメント通りのシンプルなコードしか書いてないのに、エラーエラー。で、ググってみるとこんな人がいて、そうかと思って
を追加するも、解決せず、もう一度よーくググって見たらこんな記事を発見!
そう、NetConnectionだけでなくSharedObjectのエンコーディングも合わせてやらなきゃならなかったのです(面倒!)。
これで、無事繋がりました!
けど、これはかなり見落としやすいと思う。ドキュメントに分かるように追加して欲しいレベルです。実際、僕はFMS周りの勝手が分からなかったので、しばらく路頭に迷いました。同じように最初の一歩ができなくて、悔しい思いをしている人の役に立ちますように・・・。
ところで、FMS上のSharedObjectファイルってどこに保存されてるのだろう。applicationsフォルダに作成されるんじゃないのかな?見当たらないんだけど・・・。まだこの辺の基本がよく分かってません。
ドキュメント通りのシンプルなコードしか書いてないのに、エラーエラー。で、ググってみるとこんな人がいて、そうかと思って
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フォルダに作成されるんじゃないのかな?見当たらないんだけど・・・。まだこの辺の基本がよく分かってません。