BitmapData.applyFilter のドキュメントを読むと、問題が何であるかは明らかです。透過性なしで BitmapData に DropShadowFilter を適用しようとしました (別名、アルファ チャネルなし、ピクセルあたり 24 ビットのみ)。フィルターが透過性を必要とするドキュメントの状態 (便宜上、ここに複製):
フィルターの種類ごとに、次のような特定の要件があります。
BlurFilter — このフィルターは、不透明または透明のソース イメージと宛先イメージを使用できます。イメージの形式が一致しない場合、フィルタリング中に作成されるソース イメージのコピーは、宛先イメージの形式と一致します。
BevelFilter、DropShadowFilter、GlowFilter、ChromeFilter — これらのフィルターの宛先画像は透明な画像でなければなりません。DropShadowFilter または GlowFilter を呼び出すと、ドロップ シャドウまたはグローのアルファ チャネル データを含むイメージが作成されます。宛先イメージにドロップ シャドウは作成されません。これらのフィルターのいずれかを不透明な宛先イメージで使用すると、例外がスローされます。
ConvolutionFilter — このフィルターは、不透明または透明のソース イメージと宛先イメージを使用できます。
ColorMatrixFilter — このフィルターは、不透明または透明のソース イメージと宛先イメージを使用できます。
DisplacementMapFilter — このフィルターは、不透明または透明のソース イメージと宛先イメージを使用できますが、ソース イメージと宛先イメージの形式は同じである必要があります。
透明度のある を作成するのBitmapData
は簡単です。これはコンストラクターの 3 番目のパラメーターです。
// args are: width, height, is_transparent, default_color
var bd:BitmapData = new BitmapData(1024, 768, true, 0xff000000);
透明な BitmapData を作成するときは、デフォルトの色 (4 番目のパラメーター) に 32 ビット整数を指定する必要があることに注意してください。単に 0xffffff (24 ビットの白) を指定すると、アルファ値 (上位 8 ビット) が 0 になるため、空白の画像が得られます。