またまた今更ながらの備忘録メモ。FlashPlayer8から使えるようになったBitmapDataクラスによって、動的にフィルターをかけたり、グラデーションのついたマスク表現などを使えるようになりました。
が、フィルターやグラデーションマスクといった機能、サイズ(ファイルサイズではなく、width x heightのサイズ)の大きな画像やオブジェクトに対しては効きません。具体的には、対象となるオブジェクトのwidthまたはheightが2880ピクセルを超過すると、こうした機能が無効になります。
で、その詳しい理由については下記のURLが詳しい:
Flash 8 のイメージ API の概要 | デベロッパーセンター
該当する部分の引用:
メモ : Flash Player では、ビットマップの最大サイズは幅、高さいずれも 2880 ピクセルに制限されています。この制約よりも大きい BitmapData インスタンスを作成しようとすると、ビットマップは作成されません。これは、クライアントの RAM を使い切るような Flash ムービーを作成できないようにするために設定されています。2880 × 2880 ピクセルのビットマップには、約 32 MB 程度の RAM が必要です。
残念ながらFlashPlayer10でもまだこの点についての変更は無い模様。なぜこの記事を書いてるかというと、今現在この問題で引っかかってるため。さて、どうして回避したものか・・・。
<追記>
kaedeさんからコメントで情報いただきましたが、FlashPlayer10からはBitmapDataサイズの制限が拡大されていますね。
BitmapData – ActionScript 3.0 言語およびコンポーネントリファレンス
当該部分を引用:
AIR 1.5 および Flash Player 10 では、BitmapData オブジェクトの最大サイズは幅または高さが 8,192 ピクセルで、ピクセルの総数は 16,777,216 を超えないようにする必要があります(したがって、BitmapData オブジェクトの幅が 8,192 ピクセルの場合、高さは 2,048 ピクセル以下にする必要があります)。Flash Player 9 以前および AIR 1.1 以前では、高さの制限は 2,880 ピクセル、幅の制限は 2,880 ピクセルです。幅または高さに 2880 より大きい値を指定すると、新しいインスタンスは作成されません。
なるほど、8192 x 8192ピクセル、ってのはダメなんですね。で、改めて今回作業してるファイルを見ると、cacheAsBitmapかけようと思ったインスタンスの横幅が9600ピクセル・・・。そ、そりゃあダメですよね。

初めまして。kaedeと申します。
FlashPlayer 10 ではこの仕様がアップデートされました。
詳しくは、以下をご覧下さい。
http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/flash/display/BitmapData.html#BitmapData%28%29
Comment by kaede — 2010 年 3 月 3 日 @ 1:19 PM
>kaedeさん
コメントありがとうございます!FlashPlayer10ではアップデートされたんですね。というか、実は前にそんな記事を読んだ気がしてたんですが、今やってるファイルで2880ピクセルの問題がまだ発生してたので、早合点してしまいました。情報提供、ありがとうございます!
Comment by tonpoo — 2010 年 3 月 3 日 @ 1:21 PM