透明度のある PNG である MovieClip から BitmapData を保存しようとしています。保存された BitmapDataをcopyPixels()
ステージ ビットマップの BitmapData に渡すと、透明度が白一色に置き換えられました。
私はこれを1時間以上グーグルで検索し、自分でいくつかのことを試しています。
BitmapData 格納コードは次のとおりです。
//for all block types
for(var block_type_properties in this.block_types)
{
//block_types[i][3] = bitmapdata
this.block_types[block_type_properties].push(new BitmapData(this.block_size,this.block_size,true,0x000000));
//block_types[i][4] = scale
this.block_types[block_type_properties].push(new Number(this.block_size/ this.block_types[block_type_properties][2].width));
//block_types[i][5] = matrix
this.block_types[block_type_properties].push(this.block_types[block_type_properties][2].transform.matrix);
//scale the matrix
this.block_types[block_type_properties][5].scale(this.block_types[block_type_properties][4],this.block_types[block_type_properties][4]);
//apply the matrix to the movieclip
this.block_types[block_type_properties][2].transform.matrix = this.block_types[block_type_properties][5];
//draw the scaled movieclip into the bitmapdata
this.block_types[block_type_properties][3].draw(this.block_types[block_type_properties][2],this.block_types[block_type_properties][5]);
}
実際にピクセルをステージのビットマップに貼り付ける部分は次のとおりです。
this.stage_background_bitmap_data.copyPixels(this.block_types[1][3],new Rectangle(0,0,this.block_size,this.block_size),new Point(blocks_array[block_count]['block'].x,blocks_array[block_count]['block'].y));
PNGの透明度が白に置き換えられている理由を知っている人はいますか?
編集:
これらは、コンストラクターからの 2 行のコードです。
this.stage_background_bitmap_data = new BitmapData(this.level_width,this.level_height,true,0x00000000);
this.stage_background_bitmap = new Bitmap(this.stage_background_bitmap_data);
マトリックスのスケーリングが問題になることを除外しました。私はそれを取り除きましたが、透明度や透明度の欠如に影響はありませんでした.