先日公開された AIR 3.4 SDK から、iTunes や XCode を使わずに直接 iOS デバイスに AIR アプリをインストールできるようになりました。接続されているデバイスのリストを取得することも可能です。Mac と Win どちらでも使えます。
この機能と、AIR 3.3 SDK の新機能を合わせて使うと、AIR の開発環境から直接シミュレータを起動したり、直接デバイスにインストールしてデバッグを開始したり、という作業が可能です。他のツールを利用する手間がかからないのが嬉しいところです。
実際、先週公開された Flash Builder 4.7 ベータ版では、デバッグや実行のターゲットに、シミュレータやデバイスを指定するインターフェースの追加が行われています。今月頭に公開が予告されている Flash Professional CS6 のアップデータでも同様の変更が行われるようです。
直接コマンドラインから adt を使う人は少ないと思いますが、使い方を紹介しておきます。
まず、デバイスのリスト取得は、
adt -devices -platform ios
表示されるリストの最初の数字がデバイスを識別するための ID になります。
デバイスにインストールする際は、以下のようになります。接続されているデバイスが 1 つだけの場合、-device の指定は不要です。
adt -installApp -platform ios -device ID -package /path/to/my.ipa
アンインストールする場合は、以下の通りです。
adt -uninstallApp -platform ios -device ID -appid co.jp.myapp
-appid に指定する値は、アプリケーション記述ファイルの id タグに指定されている値です。
AudioPlaybackMode.AMBIENT モードの追加
AIR 3.4 から、iPhone や iPad のミュートボタンの操作に合わせて音の再生を制御できるモードが追加されました。アプリがバッググラウンドに回された場合にも、音の再生が中止されます。
この新しい再生モードは、AudioPlaybackMode.AMBIENT です。使用する時は、以下のように記述します。
import flash.media.AudioPlaybackMode; import flash.media.SoundMixer; SoundMixer.audioPlaybackMode = AudioPlaybackMode.AMBIENT;
Android ではデバイスによってミュートスイッチが付いていたりいなかったりする、という理由で、この機能は iOS 限定となっているようです。Android でこのモードを指定すると Media を指定した場合と同じ動作になります。
(これまで、AudioPlaybackMode に指定できたのは Media と Voice だけでした。どちらのモードも、アプリがバックグラウンドで実行されても、音の再生を継続します)
マイクを利用している場合に限り、AMBIENT のままだと録音ができなくなるという理由で、AIR ランタイムが、自動的にモードを Media に切り替えます。そのため、ミュートボタンが押されても音の再生は中止されません。
ANE 内の例外処理のサポート
AIR 3.4 SDK から Objective C の @try-@catch-@finally がサポートされるようになりました。C++ の try-catch も使えます。
これで、実行時のエラーを調べるのが少しは楽になりそうです。
AIR のランタイムがネイティブライブラリからの例外を検知できるようになった訳ではないので、取得された例外の処理は ANE 内で行います。ANE から例外を使って何かを通知するという使い方はできません。
結局「Apple iOSをターゲットとした場合のActionScriptのパフォーマンスの強化」って無くなったんですね
匿名さん、こんにちは。
特に情報は公開されていないようですが、iOS 向けのパフォーマンスや書き出しサイズの改善は、リリース毎に少しずつ行われているそうです。
匿名です、御回答ありがとうございました。