Да но в таком случае эту функцию надо будет переписывать каждый раз... Я вот так сделал.

Код AS3:
private function createMask(img)
{
mask_sp=new Sprite();
var myData=img.bitmapData;
for(var i=0; i<myData.width; i++)
{
for(var j=0; j<myData.height; j++)
{
var pix=myData.getPixel32(i,j);
if((uint(pix & 0xff000000) >>> 24 ) > 0)
{
with(mask_sp.graphics)
{
beginFill(0x000000);
drawRect(i,j,1,1);
endFill();
}
}
}
}
addChild(mask_sp);
img.mask=mask_sp;
}
поесню код:
Насчет ARGB ты был прав, только в этом случае надо результат операции
"pix & 0xff000000" надо трасформировать в uint, так как в обычном int если первая цифра это 1, значит номер отрицательный. Также для шифта надо использовать оператор ">>>", так как ">>" тоже может превратить загнать ваш номер в минис.
Что бы не мучаться с деспетчерами, прото наложил маску на PNG. Раньше компилятор её не распознавал, так как она была нарисована линиями. Но сечас, так как она нарисова квадратами она распознается. Короче работает, всем спасибо за помощь
