Нда, метод крайне глючный.

По-крайней мере с
прозрачной битмапой это так.

Код:
import flash.display.BitmapData;
import flash.geom.Rectangle;
// рисуем прозрачную битмапу с цветом 0x705500FF
myBitmapData = new BitmapData(300, 200, true, 0x705500FF);
mc = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mc.attachBitmap(myBitmapData, this.getNextHighestDepth());
// дорисовываем препятствия
myBitmapData.fillRect(new Rectangle(100, 50, 50, 50), 0xFFFF0000);
myBitmapData.fillRect(new Rectangle(250, 0, 50, 200), 0xFF0000FF);
Сразу возникает первая проблема (см. ссылку выше):

Код:
trace("getPixel = 0x"+myBitmapData.getPixel(10,10).toString(16))
trace("getPixel32>> = 0x"+(myBitmapData.getPixel32(10,10)>>24).toString(16)+(myBitmapData.getPixel32(10,10) & 0xFFFFFF).toString(16))
// выдает цвет getPixel = 0x5400ff и getPixel32>> = 0x705400ff соответственно
// вместо ожидаемого 0x5500FF и 0x705500FF соответственно
Ладно, используем getColorBoundsRect:

Код:
colorBoundsRect = myBitmapData.getColorBoundsRect(0xffff00ff, 0x705400ff, true);
trace(colorBoundsRect) // (x=0, y=0, w=250, h=200)
Обратите внимание: в
маске канала R (RGB) параметр установлен в 0xFF, а в параметре
цвета этого же канала установлено "левое" (реальное) значение в 0x54. Результат - все показывает верно.
Меняем параметр цвета на правильный (заданный), т.е. на 0х55:

Код:
colorBoundsRect = myBitmapData.getColorBoundsRect(0xffff00ff, 0x705500ff, true);
trace(colorBoundsRect) // (x=0, y=0, w=250, h=200)
Опять правильно! Как такое возможно?!
Дальше больше, работаем с маской:

Код:
//Смотрим какой цвет ожидается, если маску у R задать 0х54:
myColor32=myBitmapData.getPixel32(10,10)
trace((0x705400ff & myColor32).toString(16))
// 705400ff - т.е. побитовое И флеш с данными числами считает нормально (что вовсе не очевидно)
Проверяем теорию на практике:

Код:
colorBoundsRect = myBitmapData.getColorBoundsRect(0x705400ff, 0x705400ff, true);
trace(colorBoundsRect) // (x=0, y=0, w=0, h=0)
Ничего не вышло! Смена 0х54 на 0х55 ничего не дала...
PS
Возможно дело в ограничениях с работой флеша с 32 разрядными числами. Не знаю.
Например максимальное положительное число, которое переваривает toString(16) вовсе не 0xFFFFFFFF, как можно было бы подумать, а 0x7fffffff

Код:
z=0x7fffffff
trace(z.toString(16))
т.е. 31-разрядное (1 разряд уходит на знак)
Видимо отсюда же проблемы и с отображением getPixel32.
Но побитовое И в теории сработало же безошибочно (см. выше), а в практике (getColorBoundsRect) ничего не вышло.
