« MovieClipLoaderのイベント | メイン | Box2Dを使った四則演算電卓 »
2008年2月26日
[JavaScript] JavaScript で ByteArray
JavaScript で ByteArrayクラスを作ってみました。
まだ完全に実装してるわけではないけどもとりあえずアップしとくことに。
zip圧縮、解凍とエンコードの変換は、それぞれ以下のライブラリを使わしてもらってます。
[ecl.js]エンコード変換
URL : http://nurucom-archives.hp.infoseek.co.jp/digital/
[deflate.js]zip圧縮
URL : http://www.onicos.com/staff/iz/amuse/javascript/expert/
[inflate.js]zip解凍
URL : http://www.onicos.com/staff/iz/amuse/javascript/expert/
メソッドは
"readObject()" と "writeObject()" と "writeMultiByte()" がまだ実装してません。
"writeObject()" はほんとどうやって実装しよう・・・って感じです。
AS3版とは仕様を変更して、オブジェクトのプロパティ抜いてStringに変換とかすれば楽なんだけども。
あと、まだ配列アクセス([])できません。致命的ですが。
サンプルページとソースのダウンロードはこちら。
サンプル
ByteArray.js
ソースのダウンロード
ちゃんと動くのはFirefoxだけかも。
Safariはマルチバイトエンコードがうまくいってないっぽい。
他のブラウザは__defineGetter__が対応してないと無理だと思う。
実際このスクリプトが使える代物かというと、100%使えないと思う。
とりあえず今回実装してみて、JavaScriptでバイナリデータを読み込むことと
浮動小数点数(FloatとDouble)について、少し理解できたくらい。
でも浮動小数点数のところは、かなり力技なので、
もっと綺麗に書く方法知ってる方は是非とも教えてください。
それから、JavaScriptでクラスを書く方法も"これが正攻法"ってのが
結局わからなかったので、これも知ってる方、教えていただけると幸いです。
なんか今日はずいぶん人任せなエントリーになってしまった。
まだ完全に実装してるわけではないけどもとりあえずアップしとくことに。
zip圧縮、解凍とエンコードの変換は、それぞれ以下のライブラリを使わしてもらってます。
[ecl.js]エンコード変換
URL : http://nurucom-archives.hp.infoseek.co.jp/digital/
[deflate.js]zip圧縮
URL : http://www.onicos.com/staff/iz/amuse/javascript/expert/
[inflate.js]zip解凍
URL : http://www.onicos.com/staff/iz/amuse/javascript/expert/
メソッドは
"readObject()" と "writeObject()" と "writeMultiByte()" がまだ実装してません。
"writeObject()" はほんとどうやって実装しよう・・・って感じです。
AS3版とは仕様を変更して、オブジェクトのプロパティ抜いてStringに変換とかすれば楽なんだけども。
あと、まだ配列アクセス([])できません。致命的ですが。
サンプルページとソースのダウンロードはこちら。
サンプル
ByteArray.js
ソースのダウンロード
ちゃんと動くのはFirefoxだけかも。
Safariはマルチバイトエンコードがうまくいってないっぽい。
他のブラウザは__defineGetter__が対応してないと無理だと思う。
実際このスクリプトが使える代物かというと、100%使えないと思う。
とりあえず今回実装してみて、JavaScriptでバイナリデータを読み込むことと
浮動小数点数(FloatとDouble)について、少し理解できたくらい。
でも浮動小数点数のところは、かなり力技なので、
もっと綺麗に書く方法知ってる方は是非とも教えてください。
それから、JavaScriptでクラスを書く方法も"これが正攻法"ってのが
結局わからなかったので、これも知ってる方、教えていただけると幸いです。
なんか今日はずいぶん人任せなエントリーになってしまった。
トラックバック(0)
このブログ記事を参照しているブログ一覧: JavaScript で ByteArray
このブログ記事に対するトラックバックURL: http://system.seyself.com/mt-tb.cgi/482

コメントする