Показать сообщение отдельно
Старый 11.04.2009, 15:53
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 8  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Да но в таком случае эту функцию надо будет переписывать каждый раз... Я вот так сделал.

Код 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. Раньше компилятор её не распознавал, так как она была нарисована линиями. Но сечас, так как она нарисова квадратами она распознается. Короче работает, всем спасибо за помощь