Canvas 如何在不清除的情况下更改Easel.js中的线坐标?

Canvas 如何在不清除的情况下更改Easel.js中的线坐标?,canvas,easeljs,Canvas,Easeljs,在Easel.js中,您可以画一条如下所示的线: lineE.graphics .moveTo(x1,y1) .setStrokeStyle(3) .beginStroke("black") .lineTo(x2,y2); 但要改变它的坐标,我必须删除所有内容: lineE.graphics .clear() <-----------Why?????? .moveTo(newX1,newY1) .setStrokeStyle(3)

在Easel.js中,您可以画一条如下所示的线:

lineE.graphics
    .moveTo(x1,y1)
    .setStrokeStyle(3)
    .beginStroke("black")
    .lineTo(x2,y2);
但要改变它的坐标,我必须删除所有内容:

lineE.graphics
    .clear() <-----------Why??????
    .moveTo(newX1,newY1)
    .setStrokeStyle(3)
    .beginStroke("black")
    .lineTo(newX2,newY2);
lineE.graphics

.clear()这就是EaselJS的工作原理。您必须重新绘制形状才能进行更改。这对性能的影响最小,因为在舞台更新时必须再次绘制形状

最好的方法是有一个重绘例程,当形状改变时,它会清除并绘制形状


您可以查看
Graphics.inject
方法,这是一种将可变指令注入图形路径的方法。GitHub上有一个名为“Graphics_inject.html”的示例

图形在EaselJS 0.7.0中被重构为使用“commands”,它允许您随时存储和更新任何图形命令。没有必要再重画了!