電卓を起動する AIR 2.0 アプリを作ってみた

"電卓を起動する AIR 2.0 アプリ" ができるまでのメモ。

0. 開発環境

1. AIR 2.0 Beta 2の SDK を入れる

  1. Adobe Labs からダウンロード。ランタイムも忘れずに。
  2. zip を解凍して、中身を Flex 3 SDKディレクトリにコピーする。

2. FlashDevelop の設定をする

Tools -> Program Settings -> AS3Context -> Flex SDK Location

Flex 3 SDK のパスが通っていることを確認。

3. AIR プロジェクトを作る

Project -> New Project -> AIR AS3 Projector

ここではプロジェクト名を Test とする。

4. application.xml を編集する

プロジェクトフォルダ内の application.xml をエディタで開き、1.5 の所を 2.0beta2 にする。また、supportedProfiles タグを追記する。

<?xml version="1.0" encoding="utf-8" ?>
<application xmlns="http://ns.adobe.com/air/application/2.0beta2">
...
<supportedProfiles>extendedDesktop</supportedProfiles>
...
</application>

5. コードを書く

プロセスの実行エンジンが NativeProcess クラスで、実行する内容は NativeProcessStartupInfo らしい。

package {
import flash.events.Event;
import flash.display.Sprite;
import flash.desktop.NativeProcess;
import flash.desktop.NativeProcessStartupInfo;
import flash.filesystem.File;
/**
*  電卓を起動するアプリ
*  @author tanabe
*/
public class Main extends Sprite {
private var process:NativeProcess;
/**
*  コンストラクタ
*/
public function Main():void {
stage ? initialize() : addEventListener(Event.ADDED_TO_STAGE, initialize);
}
/**
*  初期化
*  @param event イベント
*/
private function initialize(event:Event = null):void {
removeEventListener(Event.ADDED_TO_STAGE, initialize);
var info:NativeProcessStartupInfo = new NativeProcessStartupInfo();
var file:File = File.applicationDirectory.resolvePath("C:/WINDOWS/system32/calc.exe");
info.executable = file;
process = new NativeProcess();
process.start(info);
}
}
}

6. コンパイルする

F5 を押すだけ。この時点で電卓が起動する。

7. パッケージ化する

  1. CreateCertificate.bat を実行する
  2. PackageApplication.bat を実行する。パスワードは fd。CreateCertificate.bat で定義している。

8. AIR ファイルをインストールする

air/Test.air を実行する。

補足 1. Windows の .bat ファイルは実行できない

Windows の .bat ファイルは、セキュリティ上実行できない (リファレンス)。実行しようとすると以下のようなエラーになる。

[Fault] exception, information=Error: Error #3219: The NativeProcess could not be started. 'Files with '.bat' extensions cannot be launched.'

補足 2. 参考サイト