SIHOのプログラミングわーくワク
興味の赴くままに勉強してたら、読み書きできる言語は9個になりました。他にもいくつか気になる言語があったりなかったり? まだまだ続く、楽しいお仕事わーくワク♪
スポンサーサイト
新しい記事を書く事で広告が消せます。
WindowsデスクトップアプリでのAIRのCaptive Runtimeの方法
2012.04.12 (Thu)
展示と言うか、サイネージモノをつくるときって複数画面出力のKIOSKだったりします。Windowsの複数出力のKIOSKではいくつかの方法があります。
・HTAアプリにする
→IEのエンジンを使用するため、WSHとかVBScriptとかも書けるので便利。でもFlashの再生はブラウザのプラグインを使用するため、ちょっと重いかな。
・AdobeAIRにする
→Flashの再生はAIRのランタイムを使用して行われるので滑らか。
で、今回は後者で作りました。
で、展示ものなのでランタイムが数年後更新されて、不具合が発生するとかは防ぎたかったので、AIR3より追加された新機能のCaptive Runtimeでランタイムを埋め込むようにしてみました。
コマンドラインを使用する方法であまりドキュメントがなかったので、twitterで教えてもらいながらなんとかできました。なので、忘れないうちにメモです。
出来上がりはこんな風に書き出されます。

[Adobe AIR]フォルダの中にランタイムが入っています。
実行するときは、[AIR.exe]から行います。AIR.swfは実体ファイルですね。
■Windowsデスクトップアプリ用AIR3でのCaptive Runtimeの仕方
1)AdobeAIRサイトからAIRSDKをダウンロードしてきて、Cドライブとかに展開します。
2)AIRSDKを展開したフォルダ内の[bin]フォルダに、AIR.p12/AIR.swf/application.xmlをコピーします。
3)コマンドプロンプトを起動して、(2)の[bin]フォルダに移動します。
4)コマンドプロンプトで次のように打ちます。
adt -package -storetype pkcs12 -keystore AIR.p12 -target bundle AIR application.xml AIR.swf -extdir AIR\ext
すると、passwardが聞かれますので、そのときはAIR.p12を作成したときのpasswardを入れます。
補足:swfのディレクトリを指定するときは次の引数を追加します。「-C {bin-debug}swfの入っているディレクトリ」
adt -package -storetype pkcs12 -keystore AIR.p12 -target bundle AIR application.xml -C bin-debug AIR.swf -extdir AIR\ext
追記:20120412 15:54
FlashDevelopでの方法を教えてもらったので、追記します。
AIRプロジェクトを作ると自動的に作成される2つのbatファイルの中を少し編集します。
1)Packager.bat の11行目のSIGNING_OPTIONとOPTIONの順序を逆にする
2)PackageApp.bat の8行目の「set OPTIONS=」を「set OPTIONS=-target bundle」にする
3)PackageApp.batを実行すると、[air]フォルダ内にいい感じで作成されます。
※あらかじめCreateCertificate.batを実行して、**.p12を作成してあること。
追記:ここまで。
ちなみに、私はFlashDevelopを普段から使用していますが、FlashDevelopでモバイル用にCaptive Runtimeするのは次の方法でビルドはできたっぽい。
FD4.0.1だと、PackageApp.batの6行目の「set AIR_TARGET=」をコメントアウトして、次の行の「set AIR_TARGET=-captive-runtime」のコメントアウトをはずしてから、PackageApp.batを叩くとプロジェクトに、[air]フォルダが追加されその中に、[AIR-captive-runtime.air]が書き出されます。
今回はモバイルじゃなくてデスクトップ用だったので、これでは正しく動かなかったけど、今度モバイル用のAIR作るときはこの方法を忘れずに試したいと思います。