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