精華區beta Flash 關於我們 聯絡資訊
有上色程式碼的 blog : http://etrex.blogspot.com/2012/04/bitmapdatasetpixel32-bug.html == 原文 == var color1:uint = 0x01010101; var bitmapData:BitmapData = new BitmapData(1,1,true, color1); var color2:uint = bitmapData.getPixel32(0,0); trace(color1 == color2); 以上的程式輸出 : false var color1:uint = 0x01010101; var bitmapData:BitmapData = new BitmapData(1,1,true, color1); bitmapData.setPixel32(0,0,color1); var color2:uint = bitmapData.getPixel32(0,0); trace(color1 == color2); trace(color1.toString(16)); trace(color2.toString(16)); 以上的程式輸出 : false 1010101 1000000 從這兩個 case 我們知道在 setPixel32 設定顏色跟 BitmapData 建構式傳入顏色是一樣 的結果 var color1:uint = 0x010179ff; var bitmapData:BitmapData = new BitmapData(1,1,true, color1); var color2:uint = bitmapData.getPixel32(0,0); trace("color1 = " + color1.toString(16)); trace("color2 = " + color2.toString(16)); 以上的程式輸出 : color1 = 10179ff color2 = 10000ff var color1:uint = 0x010180ff; var bitmapData:BitmapData = new BitmapData(1,1,true, color1); var color2:uint = bitmapData.getPixel32(0,0); trace("color1 = " + color1.toString(16)); trace("color2 = " + color2.toString(16)); 以上的程式輸出 : color1 = 10180ff color2 = 100ffff 從這兩個 case 我們知道他是根據 A 的值對RGB分別作某個四捨五入的行為 我猜是為了繪圖加速之類的事情作的吧 不過這個真的會害死人 = = -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.137.198.18
scars:alpha值在 0xAA (0.666)以下才會發生...迴圈跑出來的 04/10 21:13
etrexetrex:color1 = b0ffffff color2 = b0fefefe 04/10 21:25
etrexetrex:規律倒不是那麼重要 在寫程式時應該避免 getPixel 04/10 21:26