先月の記事 (Flash Player 12 ベータと AIR 4 ベータの公開) でご紹介した次期 Flash Player と AIR のベータ版が更新されています。(Flash Player 12 Beta@Labs, AIR 4 Beta@Labs)
新しいバージョンは以下の通りです。
- Flash Player : 12.0.0.31
- AIR : 4.0.0.1320
今回の AIR ベータは、Android 4.4 (KitKat) での動作テストを一通り行ったバージョンです。何か問題見つけたら、こちらに報告して欲しいとのことでした。
また、この後のアップデートからは、メジャーバージョンの番号が更新されるという話も公開されました。Flash Player 12 の次は 12.1 ではなくて Flash Player 13 になるようです。
さらに、AIR のバージョンは Flash Player と揃えられるそうです。なので、AIR 4 の次は一気に AIR 13 ということになります。
iOS 用の新しいパッケージエンジン
ここからは、前回の記事以降に追加された Flash Player 12 & AIR 4 の新機能のお話です。
まず、最大でこれまでの 10 倍早いという新しい iOS アプリのパッケージエンジンが搭載されました。まだ十分にテストされていない実装初期の状態だそうですが、iOS アプリを開発している人は、ぜひどのくらい早くなったか試してみてくださいませ。
この機能を使用するには、ADC コマンドの引数に "-useLegacyAOT no" を付けます。サイン関連のオプションの前に置くようにします。
adt -package -target ( ipa-test | ipa-debug | ipa-app-store | ipa-ad-hoc) -useLegacyAOT no -provisioning-profile <Path to profile> -keystore <path to .p12 file> -storetype pkcs12 -storepa xxxx HelloWorld.ipa Helloworld-app.xml HelloWorld.swf
引数で指定するため、Flash Professional から直接試すことはできません。
また、現在公開されているベータ版では、Windows 環境だと、デバッグ情報を持つ SWF ファイルを Flex アプリにコンパイルする際 -useLegacyAOT を付けると失敗する、というバグが発見されているそうです。
複数プロファイルを指定した Context3D 生成
Stage3D に、Context3D のオブジェクトを取得する新しい手段が追加されました。
requestContext3DMatchingProfiles() メソッドは、引数に Vector.<String> を使って複数のプロファイルを指定できます。すると、Flash ランタイムが、実行中のハードウェアがサポートする、もっとも高機能なプロファイルを自動的に選択してくれます。
実際に選ばれたプロファイルは、新しく追加された Context3D.profile 属性から知ることができます。
R クラスを使ったりソースアクセスのサポート (Android)
現在、ANE 内でネイティブの Android リソースを使用するためには、getResourceID() API を使うことになりますが、AIR 4 では、R クラスを使ったリソースへのアクセスができるようになります。
その際、全ての依存関係を platform.xml ファイルに記述する必要があります。下は、platform.xml ファイルのサンプルです。
</platform xmlns="http://ns.adobe.com/air/extension/4.0"> <packagedDependencies> <packagedDependency>sample-lib-foo.jar</packagedDependency> <packagedDependency>sample-lib-bar.jar</packagedDependency> </packagedDependencies> <packagedResources> <packagedResource> <packageName>com.myane.sampleane</packageName> <folderName>ane-res</folderName> </packagedResource> <packagedResource> <packageName>com.example.lib</packageName> <folderName>lib-res</folderName> </packagedResource> </packagedResources> </platform>
また、実際のリソースは、ane と一緒にパッケージされている必要があります。下は、Android-ARM フォルダに全ての jar とリソースが含まれている場合の例です。
adt -package -target ane sample.ane extension.xml -swc sampleane.swc -platform Android-ARM -platformoptions platform.xml -C Android-ARM .
この機能を使うには、platform.xml, extention.xml そしてアプリケーション記述ファイルの名前空間に 4.0 以上を指定します。また、ANE プロジェクトはライブラリプロジェクトとしてつくります。
TextField がサポートする文字の拡張 (デスクトップ)
TextField で Unicode のサロゲートペアが使用できるようになります。ただし、この機能は Flash Player 12 ではベータ機能として扱われ、実際にサポートされるのはその後のバージョンになるようです。
これでようやく BMP に収録されていない日本語の文字も Flash Player から利用できることになりそうです。
コメントする