PDA

Просмотр полной версии : Проблема getPixel32 и нули в ARGB


cashirov
27.05.2006, 13:16
У меня возникла проблема с getPixel32 если в цвете ARGB есть нули то они в итоге не отдаются например вот пример из хелпа.

import flash.display.BitmapData;

var myBitmapData:BitmapData = new BitmapData(100, 80, true, 0x49ff0303);

var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mc.attachBitmap(myBitmapData, this.getNextHighestDepth());

var alpha:String = (myBitmapData.getPixel32(0, 0) >> 24 & 0xFF).toString(16);
trace(">> alpha: " + alpha); //

var red:String = (myBitmapData.getPixel32(0, 0) >> 16 & 0xFF).toString(16);
trace(">> red: " + red); //

var green:String = (myBitmapData.getPixel32(0, 0) >> 8 & 0xFF).toString(16);
trace(">> green: " + green); //

var blue:String = (myBitmapData.getPixel32(0, 0) & 0xFF).toString(16);
trace(">> blue: " + blue); //

trace("0x" + alpha + red + green + blue); //

в трейсе вот что

>> alpha: 49
>> red: ff
>> green: 3
>> blue: 3
0x49ff33

В чем может быть причина?

Nirth
27.05.2006, 13:27
>> green: 3
>> blue: 3
3 + 3 = 33 ( мы ведь работаем со строками)

etc
27.05.2006, 13:32
Nirth, нулей просто нет =)
cashirov, надо добавлять к переменной строковый ноль в начале, если переменная короче 2-ух символов.

Nirth
27.05.2006, 13:38
Nirth, нулей просто нет =)

ты наверное удивишься но я догадался

cashirov
27.05.2006, 13:39
___etc да придется так, или добавлять не один, а иногда два нуля.
Интересно почему такая проблема у флеша с нулями?

Nirth
27.05.2006, 13:41
я не вижу проблемы с нулями, ты когда в школе решала задачи типа 3+3=6 писала 03+03=06?

etc
27.05.2006, 13:45
cashirov, toString понятия не имеет, сколько нулей перед hex-числом должно быть и какой длины должны быть строка. Поэтому нули надо ручками добавлять.