public function drag(e:MouseEvent)
{
lineDraw(mouseX, mouseY);
e.updateAfterEvent();
}
public function lineDraw(X:int, Y:int):void
{
currentX = X;
currentY = Y;
graphics.lineStyle(size, color)
graphics.moveTo(previousX, previousY)
graphics.lineTo(currentX, currentY)
previousX = currentX;
previousY = currentY;
}
非常简单的代码,我让我用我的鼠标画线。在MOUSE_DOWN
之后MOUSE_MOVE
上触发功能拖动。清除最后绘制的图形? (撤消/重绘图)
我的问题是:我将如何去清除绘制的最后一行?基本上,一个ctrl+z/undo
函数可以重复多次,我想要的。
我是否必须完全重写我的代码,并将每一行绘制到一个数组中,然后通过数组反向工作,删除行,因为我单击“撤消”?还是有另一个更好,更简单的解决方案呢?
谢谢! :)
是的,独立的小精灵(或任何的DisplayObject使用)的将是最好的一段路要走的数组代码的注释。 'graphics'属性具有'clear()'功能,但是这会擦除整个事物,而不仅仅是最后一行。另一种方法是只存储数组中每一行的坐标,然后用白色(或任何你需要的)和相同的坐标绘制该行,但这是一种相当草率的方法。 – DodgerThud 2014-10-26 19:21:56
@DodgerThud好的,我会试试看。谢谢;) – Benjamin 2014-10-26 19:34:14
'Graphics'类的'copyFrom'方法在这里可以非常方便地用于“克隆” – 2014-10-26 20:02:40