Показать сообщение отдельно
Старый 04.08.2011, 12:03
Gantenbain вне форума Посмотреть профиль Отправить личное сообщение для Gantenbain Найти все сообщения от Gantenbain
  № 12  
Ответить с цитированием
Gantenbain

Регистрация: Jul 2011
Сообщений: 32
Код AS3:
{
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Shape;
	import flash.display.Sprite;
 
	public class  Example extends Sprite
	{
		public function Example() {
			var commands:Vector.<int> = Vector.<int>([1, 2, 2, 2, 2]);
			var data:Vector.<Number> = Vector.<Number>([5, 5, 19, 5, 19, 19, 5, 19, 5, 5]);
			var sh:Shape = new Shape();
			sh.graphics.beginFill(0xFF00FF, 1);
			sh.graphics.drawPath(commands, data);
			var bmpdata:BitmapData = new BitmapData(14, 14, false, 0x00FF00); 
			var bmSh:Bitmap = new Bitmap();
			bmSh.bitmapData = bmpdata;
			addChild(bmSh);
		}
	}
 
}
Однако, Wolsh, должен еще раз Вас поблагодарить за то, что не давали мыслям успокоиться - чего ради я решил, что битмапдата знает, где начинается моя фигура? Я и должен topLeft Rectangle поместить в точку (0, 0) битмапдаты, т.е. это как раз нормальное действие.

to -De-:
Думаю, нет смысла дальше разбираться, drawPath() рисовал мне фигуру в координатах stage, я должен был перерисовать ее, как на холсте в BitmapData, а для этого недостаточно лишь размеров фигуры , я решил, что BitmapData.draw() сам перенесет "кисть" в начальную точку. Мой косяк. Пойду виниться в Адобе.