外部BMPファイルを読み込むためのデコーダクラス作った
外部BMPファイルをFlashPlayerで表示するためのデコーダクラス BMPDecoder を作成しました。
RLE圧縮にも対応。
Spark projectのSnippetsにコミットしました。
怪しいところがあればいくらでもご報告ください。
当初は BMPLoader として読み込みから表示までサポートするクラスとして作ろうと考えていたのですが、Loader を拡張すると load をオーバーロードできない、URLLoader を拡張するとインスタンスを直接子として配置できない、しょうがないから Sprite を拡張しようとしたらデコードしたビットマップデータをわざわざ子として配置するために Bitmap インスタンスまで持たなきゃいけなくなる。
じゃあもう Bitmap を拡張すればいいじゃないか。
……読み込みから表示まで行うクラスのベースクラスが Bitmap ってなんだか気持ちが悪い。
自分が使う分にはいいのですが、オープンソースプロジェクトにコミットするにあたってどうもこの気持ち悪さが拭えなかったので、デコーダだけでいいかなと。
こんなクラス使う人はそもそもこなれてるはずだから、読み込みから全部サポートしなくてもいいかなと。
データの読み込み後、すぐにデコードを行うかどうかも使う人に任せられるのできっとこの方がいいかなと。
最終的には拡張子を気にすることなく読み込みを行う ImageLoader クラスといった感じで作り込めれば最強なんですが、どれだけ対応しなきゃならないんだと。
こういうのは複数人で開発した方がよさそうですね。
関連エントリ:
PSDParser リリース
アイコンファイルのデコーダクラス作った



コメント
Soundクラスが音をロードできるので、BitmapDataがロードできてもありっちゃありなのではないでせうか。
投稿者: Taka | 2007年08月27日 02:17
>Takaさん
ありっちゃありですが、PROGRESSとかCOMPLETEとかのイベント制御どうしようかなって感じで。
onProgress、onCompleteを用意しておくかなあ……
このあたりの作法が人によって違うので迷いどころっす。
投稿者: munegon | 2007年08月27日 15:07