ロックオン開発チームブログ -Lockon Knowledge Repositories-

Apolloでファイル操作

お久しぶりです、goyaです。
引き続き、今回もApolloネタです。

前回、前々回はmxml、HTML+javascriptによるアプリ作成だったので
今回は大本命のFlash(swf)からApolloアプリを作成してみたいと思います。

せっかくなので今までFlashでは出来なかったローカルファイルへのアクセス
をつかった簡単なメモ帳を作ってみます。

■まず最初に、ActionScript3.0で記述したfile.asを作成し、UTF-8で保存します。
(単純にファイルの読み込みと書き込み機能がついたフォームを作成)

package {
    import flash.display.*;
    import flash.text.*;
    import flash.filesystem.*;
    import flash.events.*;
   
    //ファイルアクセス
    public class file extends Sprite {
        private var textField:TextField;//テキストフィールド
        
        //コンストラクタ
        public function file() {
            //画面の描画
            var child:Sprite = new Sprite();
            child.graphics.beginFill(0xffffff);
            child.graphics.drawRect(0,0,240,240);
            child.graphics.endFill();
            addChild(child);

//テキストフィールドの追加
textField=addTextField(child,"");
textField.x=10;
textField.y=10;

//ファイル読み込み
readHandler();

//書き込みボタンの追加
addButton(child,"書き込み",writeHandler, 10,40);
}

//テキストフィールドの追加
private function addTextField(doc:DisplayObjectContainer,
text:String):TextField {
var textField:TextField=new TextField();
doc.addChild(textField);
textField.width=200;
textField.height=20;
textField.text =text;//テキスト
textField.selectable=true;//選択可
textField.border =true;//ボーダー
textField.type =TextFieldType.INPUT;//入力
return textField;
}

//ボタンの追加
private function addButton(doc:DisplayObjectContainer,
text:String,handler:Function,x:int,y:int):TextField {
var button:TextField=new TextField();
doc.addChild(button);
button.text =text;
button.autoSize =TextFieldAutoSize.LEFT;//サイズ
button.selectable =false; //選択を不可
button.border =true; //ボーダー
button.background =true; //背景色
button.backgroundColor=0xdddddd;
button.addEventListener(MouseEvent.CLICK,handler);
button.x=x;
button.y=y;
return button;
}

//ファイルの書き込み
private function writeHandler(evt:MouseEvent):void {
//デスクトップ/test/test.txtにファイルを保存
var file:File=File.desktopDirectory.resolve("test/test.txt");
var fs:FileStream=new FileStream();
fs.open(file,FileMode.WRITE);
fs.writeUTFBytes(textField.text);
}

//ファイルの読み込み
private function readHandler():void {
//ファイル読み込み
var file:File=File.desktopDirectory.resolve("test/test.txt");
var fs:FileStream=new FileStream();
if(file.exists) {
fs.open(file,FileMode.READ);
textField.text=fs.readUTFBytes(fs.bytesAvailable);
}
}

}
}

■次にfile.asからswfを作成します。
(通常のFlashのパブリッシュのようなものです。)

コマンドラインから以下のコマンドを実行します。

>amxmlc -default-size 240 240 -default-frame-rate=30 -default-background-color=0xCCCCCC file.as

これでエラーが無ければswfが作成されるはずです。

次に、アプリケーションの設定ファイルであるADFを作成します。
これは前々回に説明しているので省略いたします。
詳しくはこちらをご覧下さい。


■最後にApolloアプリを作成(airファイル)するコマンドを実行して完成です。

>adt -package file.air file.xml file.swf

■画面イメージはこんな感じになります。

file.jpg


Apolloアプリ完成品はこちら

今までWEB上(Flash)では出来なかったこともApolloでは簡単に出来てしまいますので
今後面白いデスクトップアプリケーションが次々と生まれてくるかもしれませんね。

Trackback

このエントリーのトラックバックURL:
http://www.lockon.co.jp/cgi-bin/mt/mt-tb.cgi/250

コメント



Copyright(c) LOCKON CO.,LTD. All Rights Reserved.