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
■画面イメージはこんな感じになります。

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

