今回は前回のFlashのオブジェクトをJavaのオブジェクトに変換するの逆です。
Javaから、Flashにデータを変換します。

Date date = new Date();

Amf3Output output = new Amf3Output(new SerializationContext());
output.reset();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
output.setOutputStream(baos);
output.writeObject(date);

output.flush();
byte[] data = baos.toByteArray();

Base64 base64 = new Base64();
String base64str = base64.encodeToString(data);

//  ここでBASE64のデータをXMLSocketを通じてFlash側に渡してあげます。
e.getChannel().write(base64str);

//  これを忘れてはいけません。これがないと、XMLSocketは終わりを認識できません。
e.getChannel().write("\0");

前回、Base64の処理はBlazeDSについていたjarを利用しましたが、
Jakartaのcommons-codecに変更しました。

こんどはFlash側ですが、こちらは、

var str:String = event.data as String;
var bytes:ByteArray;
var b64:Base64Decoder = new Base64Decoder();
b64.decode(str);
bytes = b64.flush();

var obj:Object = bytes.readObject();

とこんな感じになります。

非常に簡単にできました。

関連記事

Leave a Reply

Spam protection by WP Captcha-Free

ソフトウェア&ライブラリ



ライブラリ
airxmail(en)
AIR版メール送受信ライブラリ
airxzip
AIR版ZIP圧縮・解凍ライブラリ
カレンダー
2010年5月
« 4月   6月 »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

カスタム検索
RSS
Add to Google
にほんブログ村 IT技術ブログへ