2011年7月19日火曜日

AIR for iPad

AIR for iOSを使う利点の一つとして、画面サイズの違いを吸収してくれるというところがあります。AIR for iOSというか、Flashの利点なのですけどね。
ブラウザにSWFファイルをドラッグアンドドロップしてから、ブラウザの大きさや縦横比を変えた時のFlashの見え方を思い出して頂ければ分かりやすいと思います。

iPhone/iPadの解像度は以下のようになっています。
  • iPhone4以前・・・320x480
  • iPhone4・・・・・640x960 (Retina対応ソフト時)
  • iPad/iPad2 ・・・768x1024
iPhoneだけで考えれば縦横比は一緒なんですが、iPadは1:1.333と縦横比が変わってしまいます。ネイティブアプリ開発時は、フレームワークのUIだけを使っていれば、それほど困ることは無いかと思いますが、OpenGLを使っている2Dゲームアプリの場合だと、マルチ解像度対応は意外と面倒くさいので、フレームワークやライブラリやらがスクリーン解像度の違いを吸収してくれるととても楽です。

ズッコケ4人もiPadに対応させてみました。
Flashの威力のおかげで、スクリーンの上下に黒帯マスクを追加するだけで対応は済みました。
あと、iPhone4よりも、若干iPadの方がフレームレートが上がりました。うれし〜。



ベクタータイプのムービークリップをビットマップ化するタイミングには注意が必要です。
パブリッシュする前にビットマップ化してしまうと、当然ながらその解像度で固定されてしまうので、大きなスクリーンで表示すると、引き伸ばされて画像が汚くなってしまう可能性があります。

ベクターグラフィックをビットマップ化するのは、ActionScriptからも指定できます。
これだと実行時にビットマップ化されて便利なのですが、デバイスによってその効果の程はまちまちなようです。
PCでは効果が無いというか、逆に遅くなった体験が過去にあります。
displayObject.cacheAsBitmap = true; 
displayObject.cacheAsBitmapMatrix = new Matrix();
cacheAsBitmap はビットマップ化するよ、というフラグです。
cacheAsBitmapMatrix はビットマップ化(レンダリング)する時の基準となる変換マトリクスで、通常は上記のように単位マトリクスを指定するようです。

詳しくは Adobe Helpの AIRでキャッシュされたビットマップの変換マトリクス をご覧になると良いと思います。

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...