你可能更願意使用一個位圖,使這樣的事情更易於操作的最佳方式(除非你需要做可伸縮的矢量圖形當然!)。要繪製形狀,您仍然可以使用圖形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);
西門下一次你可以發佈你的工作代碼。 – 2011-01-24 16:37:32