從一個答案我給這裏繼:AS 3 | Cloning Png image data的BitmapData構造函數的默認似乎發生衝突
我知道,要得到一個透明的BitmapData對象,必須指定的黑色背景顏色,但直到我叫出來它從來沒有打擾過檢查原因。經過檢查,我不知道是否有一個原因,我沒有看到什麼似乎是BitmapData構造函數的衝突默認參數?
首先,這裏是構造函數的文檔中定義:
public function BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)
請注意,在透明的默認值是true。現在考慮文檔對透明參數的說明:
transparent:Boolean(default = true) - 指定位圖圖像是否支持每像素透明度。默認值是true(透明)。要創建完全透明的位圖,請將transparent參數的值設置爲true,並將fillColor參數的值設置爲0x00000000(或0)。將透明屬性設置爲false可以使渲染性能略有改進。
似乎認爲這個參數是無用的,除非你設置填充顏色爲黑色。那麼爲什麼默認的fillColor值是0xFFFFFFFF呢?
這對我來說似乎是錯誤的。如果開發者想沒有alpha通道的性能增益,就必須明確指定:
var bmd:BitmapData = new BitmapData(width,height,false);
,如果需要一個透明的BitmapData,這也必須明確指定:
var bmd:BitmapData = new BitmapData(width,height,true,0x000000);
因此,在不我們可以依靠最短的構造函數形式,而不接受性能打擊,我不明白爲什麼。當然無論是將fillColor應該默認爲黑色:
var bmd:BitmapData = new BitmapData(width,height); // transparent BitmapData
或透明度應該默認爲false:
var bmd:BitmapData = new BitmapData(width,height); // faster, no-alpha BitmapData
誰能給我解釋一下當前構造函數的好處是什麼?