0

我在基本图像movieclip之上有一个基础图像和一些精灵......一些精灵可以由用户使用actionscript 3中的图形api绘制。我可以在精灵上绘制东西,但我不能创建橡皮擦像刷子一样可以删除部分不需要的图纸。我尝试使用 Alpha 但它不起作用

我已经用谷歌搜索并提出了解决方案:

1)Linebitmapstyle ...这个解决方案不是最好的,因为我的精灵可以移动,所以如果我使用linebitmapstyle,它确实将像素从图像绘制到精灵,但如果精灵移动了绘制的像素不会改变。

2)掩蔽可能对我也不起作用....

创建橡皮擦的最佳方法是什么

4

1 回答 1

3

您可能更愿意使用位图来使这些东西更易于操作(当然,除非您需要制作可缩放的矢量图形!)。要绘制形状,您仍然可以使用图形 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);
于 2009-10-09T00:00:05.380 回答