Показать сообщение отдельно
Старый 08.04.2011, 09:59
MAPUTO вне форума Посмотреть профиль Отправить личное сообщение для MAPUTO Найти все сообщения от MAPUTO
  № 5  
Ответить с цитированием
MAPUTO
 
Аватар для MAPUTO

Регистрация: Mar 2011
Сообщений: 38
Типа того. Возможны ошибки - код не компилировал.

Код AS3:
myBMP; //объект BitmapData
var someShape:Shape;
//Draw shape
 
var n_x =  someShape.x - myBMP.x - someShape.width/2;   //координаты верхнего левого угла someShape
var n_y =  someShape.y - myBMP.y - someShape.height/2; // относительно myBMP
 
var maskBMP:BitmapData = new BitmapData(someShape.width, someShape.height, false, 0xFF00FF00); // Цвет выбирается произвольно. Можно использовать и альфа-канал
 
maskBMP.draw(someShape); //объект someShape должен быть, к примеру, красного цвета 0xFFFF0000
 
 
var newBMP:BitmapData = new BitmapData(someShape.width, someShape.height, false, 0xFFFFFFFF); // Объект-приемник
 
//копируем пиксели из области над которой лежит someShape
var rect:Rectangle = new Rectangle(0, 0, someShape.width, someShape.height);
var pt:Point = new Point(n_x, n_y);
newBMP.copyPixels(myBMP, rect, pt);
 
newBMP.copyChanel(maskBMP, rect,[0,0],BitmapDataChannel.RED,BitmapDataChannel.ALPHA);
 
// промежуточные объекты можно удалить