Flash Player および AIR バージョン 26 のベータ版が公開されています。(Adobe AIR@Labs) 新しい SWF バージョンは 37 です。
今回の主な追加機能および変更点は以下の通りです。モバイル AIR アプリに関連する機能ばかりです。
- Android アプリの共有ランタイムを利用するパッケージオプションが選択不可に
- iOS 上の StageWebView で WKWebView を採用
- モバイルデバイスの回転の譲許を通知する DeviceRotation イベント
- AGAL 4 をサポートする新しい Stage3D のプロファイル Enhanced
- 頂点テクスチャのフェッチ機能 (Enhanced プロファイル)
バージョン 26 からは、Android向けのアプリが、ランタイムを埋め込むキャプティブ (apk-captive-runtime) だけになります。モバイル用のアプリでは、共有ランタイムを選択するケースが殆ど無いため、開発の集中を図るための選択とのことです。
また、iOS 向けには StageWebView の描画エンジンが WKWebView に変更されました。これにより、Safari の Web インスペクタを使った StageWebView コンテンツのデバッグも可能になっています。
Stage3D の Enhanced プロファイルは AGAL 4 の新しいオプコードとレジスタをサポートする新しく追加されたプロファイルです。最新の AGAL ユーティリティは GitHub の adobe-flash/graphicscorelib から入手できます。
モバイル環境の DeviceRotation イベント
AIR 26 では、デバイスが回転した時、3 軸それぞれに対する変化量をイベント経由で取得できます。例えば、360° ビデオをデバイスの回転に応じて再生するアプリなどに役立ちそうです。
サポートされる環境は、iOS 4.0 以降、または Android 4.3 以降で、加速度計と角速度計が付いているデバイスです。スクリプトからは、DeviceRotation.isSupported() メソッドで確認できます。戻り値が true なら利用可能です。
回転量を取得するには、DeviceRotation オブジェクトを作成し DeviceRotationEvent.UPDATE イベントハンドラを設定します。イベントハンドラに渡される DeviceRotationEvent イベントオブジェクトは、以下の属性値を持っています。
timestamp:Number - アプリ起動からの時間、単位はミリ秒 pitch:Number - X軸回りの回転の度数 roll:Number - Y軸回りの回転の度数 yaw:Number - Z軸回りの回転の度数 quaternion:Array - 四元数の配列として値を取得 [w, x, y, z]
イベントが発行されるタイミングは、以下の 3 つの場合のどれかです。
- 新しくイベントハンドラが追加された
- あらかじめ定められている間隔が経過した
- スリープ解除後など、イベントが通知されなかった可能性のある時間があった
DeviceRotationEvent イベントの間隔は、DeviceRotation オブジェクトに setRequestedUpdateInterval () メソッドを使用して指定できます。ただし、デバイスがサポートする最短時間より短い間隔は指定できません。最短の間隔を指定したい場合は、引数に 0 を渡せば良いようです。
コメントする