Возможно, вы захотите использовать растровое изображение, чтобы упростить манипулирование такими вещами (если, конечно, вам не нужна масштабируемая векторная графика!). Для рисования фигур вы все равно можете использовать графический API для создания фигур.
Для этого создайте «фиктивный» спрайт (или другую реализацию IBitmapDrawable
), чтобы создать графику, а затем «скопируйте» их в BitmapData
функцию bitmapData.draw()
. Таким образом, вы можете, например, рисовать с параметром BlendMode.ERASE
, чтобы удалить пиксели фигуры.
Пример (из головы):
// creates a bitmap data canvas
var bitmapData:BitmapData = new BitmapData(500, 500);
// creates a bitmap display object to contain the BitmapData
addChild(new Bitmap(bitmapData));
// creates a dummy object to draw and draws a 10px circle
var brush:Sprite = new Sprite(); // note this is not even added to the stage
brush.graphics.beginFill(0xff0000);
brush.graphics.drawCircle(10, 10, 10);
// the matrix will be used to position the "brush strokes" on the canvas
var matrix:Matrix = new Matrix();
// draws a circle in the middle of the canvas
matrix.translate(250, 250);
bitmapData.draw(brush, matrix
// translates the position 5 pixels to the right to slightly erase the previously
// drawn circle creating a half moon
matrix.translate(5, 0);
bitmapData.draw(brush, matrix,null,BlendMode.ERASE);