5月 2011

You are currently browsing the monthly archive for 5月 2011.

既存のFileReferenceだとsdcard以下のファイルしか選択できなかったので
ファイル選択するためのライブラリを作成しました。(以前アプリでつくったものをライブラリ化)

<ファイル>

FileChooser.zip (プロジェクトファイルの一式)
FileChooser.swc (ライブラリファイル)

<使い方>

1. ライブラリファイル(FileChooser.swc)を、プロジェクトのlibフォルダにおきます。

 

2. ファイル選択をしたいときに、FileChooserクラスのインスタンスを生成します。
引数として、現在のViewのインスタンス、最初に表示したいディレクトリのパスを指定します。
次に、作成したインスタンスのshowFileChooser()メソッドを呼び出します。

1
2
3
4
5
/* FileChooser(view, 最初のパス) */
var fc:FileChooser = new FileChooser(view,"/");

/* ファイル選択ビューの表示 */
fc.showFileChooser();

 

3. showFileChooser()を呼び出すと、ビューがファイル選択のビューに切り替わります。

 

4. リストから、ファイルを選択すると元のビューに戻ります。選択したファイルのパスは、
FileChooser.selectedPathに格納されます。

元のビューのViewNavigatorEvent.Activateイベントなどで、拾うとよいかと思います。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/**
 * ビューがアクティブになったとき
 *
 * @param event ViewNavigatorEventのインスタンス
 */

private function onActivate
     (event:ViewNavigatorEvent):void
{
    /* ファイルパスがセットされているときは、
        その値をフォームにセットする */

    if(FileChooser.selectedPath != null)
    {
          filePath = FileChooser.selectedPath;
    }
}

※static変数への格納はしたくなかったけど、パスの保持が
どうしてもうまくできなかったのでstatic変数に格納することにしました。

素材は、www.blog.spoongraphics.co.uk
のものを使用させてもらいました。

Air for Android を試したので簡単なアプリをつくって、公開してみた。
MD5生成は、以前作成したライブラリを使用。

 

最初は、Flash Builder Burritoで作っていたが、最近になって4.5の試用版が公開されたので、再インストール&プロジェクトをインポートした。

モバイルに関してはHeroから結構仕様が変わったらしく、見た目が変わったのとエラーが発生。(デスクトップ&webアプリは問題なし。)

調べたら以下のリンク先に、変更のあったAPIが詳しく載っていたので、これを参考に修正。

Updating Flash Builder Burrito Applications to Flash Builder 4.5

 

<アプリ作成に際して、気がついたこと>

1. ファイル選択のためのFileRefereceneクラスは、Androidだとsdcard以下のファイルしか選択できなかった。そのため、ファイル選択部分も自作する必要があった。

2. ByteArrayクラスのwriteMultiByteに、euc-jp,iso-2022-jpを指定してもうまく動作しなかった。デスクトップ上でのデバッグでは正常に動作。AndroidのAIRが対応してないのだろうか。

 

以下が作成したアプリのキャプチャ。

MD5GeneratorForAndroid