Flash Liteメモリ対策 ビットマップ(パターン)編

繰り返すことのできるパターン画像の場合、どのように配置するのが最も効果的か検証しました。
シェイプを置いてその塗りにビットマップを指定するのが、最もHeapメモリとファイルサイズを節約できました。

(1)静止画一枚をべた貼りする

パターンのある画像を240x432pxのPNG画像にしてべた置きしました。
メモリ消費、ファイルサイズ共に最も大きくなります。

(2)静止画を分割して並べる
パターンのある画像を絵柄の単位ごとで切り出して、並べて配置します。
このサンプルでは80x80pxのものを使用しました。

メモリ消費、ファイルサイズ共に大分良くはなりましたが、ビットマップ画像がズレるバグを回避するために一度シンボル化することを考えるとあまりすっきりしません。

(3)シェイプの塗りにパターン画像を設定する
シェイプの塗りをビットマップにし、繰り返し配置する画像を指定することで表示します。

ファイルサイズも消費メモリも最も少なく、配置も再編集も簡単。

同じ画像を10x10pxまで縮小してみると、更に消費メモリが減った

繰り返しで敷き詰められる画像は小さく軽く、シェイプの塗りに指定してください。

Flash Lite1.1のバグ?とその対処法

・配置した画像が歪む、ずれる
ビットマップ画像を配置する際、恐らくFlashPlayer4時代のものと思われるずれや歪みが発生します。
回避のしかたはこちら。→Flash Lite 1.1 で画像がずれるバグの対処法チェックリスト

・透過GIFが、Flash上で透過にならないことがある
GIF画像は保存するソフトによってヘッダ部分が異なることがあり、
Photoshop5.0等でこの現象が確認されているようです。
異なるソフトで上書きすることにより直る場合があります。

・_rotationで回転させたシンボルが徐々に小さくなる
回転時に出る小数点の処理により表示されているシンボルが小さくなります。
特にアナログ時計の秒針などで目立ちやすい現象です。
 A.[変形]タブで、全てのシンボルの表示倍率を100%にする
 B.数値入力でシンボルの位置を決めるのではなく、マウスでドラッグして位置を決める
等で解決することがあります。
それでもだめな場合は、_xscaleと_yscaleを100に設定するASを書いて
都度拡大率を100%にし直すことで対応します。

・複数枚重ねた画像やシンボルの辺に線が出る
同じ大きさの画像や、辺が重なっている部分に線が出ることがあります。
重なり合ったインスタンスを1pxずつずらす、大きさを変える、等で解決することがあります。

・複数枚重ねた画像が真っ白になる
重ねた枚数がある程度以上になると、その画像に含まれる透過が効かなくなることがあります。
画像を重ねあわせる枚数を減らしてください。

・スタック限界到達エラー
シンボルの入れ子の数が8以上になると再生ができなくなります。仕様です。
このエラーはAdobe Device Centralでも確認することができます。

・1フレーム目にASを書くと正常に実行されない場合がある
メインのタイムラインの1フレーム目に記述してあるAS(gotoAndStop()等のタイムラインコントロール系)を無視して、2フレーム目を再生してしまう場合がある。
ファイルによっては1フレーム目に書いてあっても正常に実行される場合もあり、どういった場合に発生するかは未検証。
この現象はiモードHTMLシミュレータ等のエミュレータでも確認できる。
対応策
 ・1フレーム目は空けておき、2フレーム目からASを記述する(推奨)
 ・空白のキーフレームだった場合、何かシェイプを置くことで正常に実行される場合がある

・画像が表示できない、取得できない
プログレッシブJPEGは機種により表示ができないため、Flash内には配置しないようにします。