Показать сообщение отдельно
Старый 06.12.2013, 20:04
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>> Я понимаю, что это делается маской
не обязательно маской, например на 32битной картинке дырку можно просто 'нарисовать'
Код AS3:
public class Main extends Sprite 
{
	[Embed(source = "pic.png")]
	public const pic_png:Class;
 
	public function Main():void 
	{
 
		// картинка, д. б. 32-битная, иначе вместо 'дырки' будет чернота
		var bmp:Bitmap = new pic_png() as Bitmap;
		addChild(bmp);
 
		// дырка
		var canvas:Shape = new Shape();
		canvas.graphics.beginFill(0x0);
		canvas.graphics.drawCircle(200, 200, 50);
		bmp.bitmapData.draw(canvas, null, null, BlendMode.ERASE);
	}
 
}
программно нарисовать шейп с дыркой можно (рисуем, не переключая beginFill\endFill, по нарисованному и получаем дырку), но как маска такой шейп дырки не даст, а только как цельная заливка