1. Мне не понятен смысл

Код:
var red:String = (snap.getPixel32 (a, b) >> 16 & 0xFF).toString (16);
var green:String = (snap.getPixel32 (a, b) >> 8 & 0xFF).toString (16);
var blue:String = (snap.getPixel32 (a, b) & 0xFF).toString (16);
tmp = "0x" + red + green + blue;
когда

Код:
var tmp:String = "0x" + snap.getPixel (a, b).toString (16);
делает то же самое, а операция в несколько раз меньше.
2. Какой смысл вообще переводить в строку? Байт от этого будет только больше
3. В сети достаточно примеров таких преобразований. Лучше поискать уже готовые коды.