Flash Player および AIR バージョン 25 のベータ版が公開されました。(Adobe AIR@Labs) 追加された新機能は全て AIR アプリ向けで、Flash Player 関連はセキュリティ周りの変更点がが 1 つだけのようです。新しい SWF バージョンは 36 です。
今回の主な追加機能および変更点は以下の通りです。
- AIR ラインタイムを iOS 10 SDK にアップグレード
- iOS 向けにコンパイル時の情報を取得する AS3 API 追加
- StageWebView のローカルストレージサポート (Android)
- Multidex サポートにより 64K を超えるメソッドに対応 (Android)
- 旧式のビデオパイプラインにフォールバックするオプション (Android)
- デスクトップ環境の AIR アプリでもインスタンス化描画機能をサポート
- オフセットを指定したビットマップデータの描画 (AIR)
- HTTP と HTTPS 個別にカメラとマイクの許可設定ができる
最後の HTTP と HTTPS 個別のアクセス許可設定の機能自体はバージョン 24 から追加されたものですが、バージョン 25 では、グローバル設定に加えて、ローカルのコントロールパネルからも設定できるようになっています。
また、AIR 20 からモバイル環境では利用できた、Stage3D でインスタンス化させたオブジェクトを描画する機能が、デスクトップ環境でも利用できるようになりました。Standard Extended プロファイルをサポートする全ての環境の AIR アプリで createVertexBufferForIntance() と drawTriangleInstanced() が利用できることになります。
そして、Android 向けの AIR アプリケーションで、MultiDex が利用できるようになりました。AIR 25 からは、64K を超えてメソッドを参照するアプリのパッケージが可能になります。ANE を使用している場合、含まれているライブラリが MultiDex に対応していないと、パッケージ時にエラーになることがあるため要注意とのことです。
iOS 向けにコンパイル時を取得する API
NativeApplication クラスに新しいメソッド isCompiledAOT() が追加されました。以下の AOT をターゲットとしてコンパイルされたときのみ値が true になります。
- ipa-app-store
- ipa-test
- ipa-debug
- ipa-ad-hoc
上記以外をターゲットにする iOS 向け AIR アプリ、およびその他のプラットフォーム向けの AIR アプリでは false が返されます。
Android 環境での StageWebView でローカルストレージをサポート
AIR 25 からは、Android 環境で StageWebView 内に表示された HTML 文書からのローカルストレージ利用が可能になりました。HTML 文書内に以下の様なスクリプトを記述できます。
<html> <!-- 以下の様なスクリプトを記述できる function sampleStore(){ localStorage.setItem("set", "ローカルストレージに保存"); } --> <body> ... </body> </html>
Androidのビデオパイプラインを選択するオプション
ビデオ処理を旧来の処理パイプラインにフォールバックするオプションが提供されました。これは、AIR 22 で刷新された Android 環境での新しいビデオ処理パイプラインが原因で問題が起きている場合に対応するためです。新しく追加された <disableMediaCodec> タグの値を true にすることで、AIR 21 以前と同様に OpenMax AL によるビデオのデコードが行われます。下はそのサンプルです。
<android> <manifestAdditions><![CDATA[ ... ]]></manifestAdditions> <disableMediaCodec>true</disableMediaCodec> </android>
AIR アプリでビットマップデータ描画時にオフセットを指定する
バックバッファのデータを描画するメソッド drawToBitmapData() の引数にオフセットを指定できるようになりました。従来はバッファの内容全てを書き出す動作のみでしたが、引数にオフセットを指定することで、一部の矩形のみを切り取ってビットマップ上の任意の位置に出力できます。
オフセットを指定するために 2 つの引数が追加されています。最初の引数は従来通りで、データのコピー先となる BitmapData オブジェクトを指定します。
drawToBitmapData(destination:BitmapData, srcRect:Rectangle = null, destPoint:Point = null)
2 つめの引数には、バッファから切り取る領域を Rectangle オブジェクトで指定します。矩形で指定された領域がバッファからはみ出ている場合、バッファ外の領域を切り取った状態の矩形が返されます。
3 つ目の引数には、切り取った矩形を配置するビットマップ上の座標を指定します。矩形がビットマップからはみ出た場合、ビットマップ外の領域は無視されます。
指定されたオフセットでコピーできる領域が存在しない場合はエラーが返されます。2 番目と 3 番目の引数に null を指定した (もしくは両方とも未指定の) 場合は、従来通りの動作になります。
コメントする