2011年8月19日金曜日

「Army & Maiden」アプレット版の開発

 昨晩、ふと思い立ち、「Army & Maiden」のアプレット版の開発を開始しました。

 以前から、懸案になっていたので。

「Army & Maiden」は、内部的にはCroCroWrpという、環境依存を吸収するライブラリの上で動いています。

 このCroCroWrpには、PC版を動かすCroCroWrpPc、Android版を動かすCroCroWrpAndがこれまで存在していました(それぞれ、CroCroWrpの各クラスを継承している)。

 ここにCroCroWrpApltを追加して、Webブラウザ上でも動くようにしました。

 とりあえず一晩で完成したので、よかったです。落ち着いたら、公開準備をしないといけません。




 さて、割と簡単に実装できたのですが、実は一ヶ所面倒臭いところがあって、これまで手を付けていませんでした。

 それは、ネット上のZipファイルをDLしてきて、メモリ内で解凍して中味を取り出す処理です。

 JavaのZip系クラスは、ファイルを直接読むものと、ストリームから読むものの2系統があります。

 ファイルを直接読むものは、アプレットでは使えません。ローカルアプリではないので。

 また、ストリームから読むものは、Zip内のファイルを読むたびに、ヘッダー部を解析してファイルを探しに行くので、大量のファイルをその都度読む用途には使えません。

 そのため、これまでのPC版とAndroid版と同じデータ(Zipで固めたもの)をそのまま利用しようとすれば、自前でZipを読むクラスを開発しなければなりません。

 というわけで、開発しました。Zipファイルをメモリ上に保持して、必要に応じて中味を解凍して取り出すクラスを。



 とは言っても、完全にゼロから作ったわけではありません。Android版で使っていたクラスを流用しただけです。

 実は以前に、Android版用に、Androidのリソースに保存したZipファイルから、必要なファイルだけを解凍して抜き出すクラスを作っていました。

 というわけで、そのクラスを改造して、メモリ上のZipを解凍して取り出すクラスを作成して、アプレット版の「Army & Mainden」が無事に完成しました。

 まあ、アプレットなので、ファイルの保存はできないのですが、デモを公開する程度なら問題ないと思います。

 ファイル保存が必要になれば、サーバーと通信して、データを保存する命令を追加すればいいですし。

 というわけで、前々から予定はあったけど手を付けていなかった部分を、一晩で突貫で実装しました。

0 件のコメント:

コメントを投稿