Windows でも Mac でも使いたいなら、native なんて付いてるプロパティは使うなと[AIR/Flex]
(2011-01-22 18:09:15) by shinoda


以前書いた、「AIRアプリでZIPファイルを解凍してみる」の続き。

FZip というフリーの zip ファイル操作用ライブラリを使って、AIR アプリで zip ファイルを解凍するという話で、実際、Windows 上では問題なく動いてたんだけど・・・

その AIR アプリを、Mac OS X 10.5 のマシンにインストールして使うと、全然 zip ファイルが解凍されない。

Flex Builder 上でデバッグしてみると、どうも、IOErrorEvent が発生してる。
エラーメッセージを出力してみると(trace("ERROR=" + evt.text);で)、

Error #2032: Stream Error. URL:app:/Users/shinoda/Library/Preferences/hogehogeApp/Local%20Store/data/cont/ds.zip

だって。

う〜む・・・
パスは合ってると思うがなあ・・・頭に app: とか付いてるのが問題なのか?でも、こりゃ Flex が勝手に付けてるだけだからなあ。どうしようもないし。

結局、zip ファイル名を URLRequest の url プロパティに渡すところで、

Fzip = new FZip();

var request:URLRequest = new URLRequest();
var file:File = File.applicationStorageDirectory.resolvePath(ZipFileName);
request.url = file.nativePath;
〜以下略

この、file.nativePath file.url にしてやったら、IOErrorEvent は発生しないようになり、Mac OS X の上でも AIR アプリで zip 解凍をおこなうことが出来た。

ちなみに、file.url の場合、実際には "app-storage:/data/cont/ds.zip" という値が渡される。

まあ、Windows でも Mac でも同じように使いたいなら、出来るだけ native なんて付いてるプロパティは使うなってことですな(^^;


コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る

Powered by
MT4i 3.0.8