清除并重用Canvas,还是创建新对象?

时间:2013-04-03 13:34:09

标签: java gwt java-canvas

我的设置:

我有GWT Canvas显示一些依赖于重算法的grafics。这些对象是可拖动的,因此在拖动时我将拖动对象旁边的所有内容保存在临时画布上,并将其重新用作拖动上下文后面的图像。

我的问题: 我的拖动画布是一个重用的Canvas对象,在拖动开始之前先将静态上下文保存到它之前先清除它。 我想知道“重用和清除”是否比“创建一个新的画布对象”更好。

您怎么看?

每次都清除画布:

private Canvas canvas;
void buffer() {
   canvas.getContext2d().clearRect(0, 0, Window.getClientWidth(), Window.getClientHeight());
   //...draw
}

...或创建新对象:

void buffer() {
   Canvas canvas = Canvas.createIfSupported();
   //draw
}

1 个答案:

答案 0 :(得分:0)

“重用和清除”是优越的。它更有效,因为它只调用本机clearRect(x, y, w, h)。在添加和删除小部件期间会发生许多事件。只有当它是一个逻辑概念时我才会使用新对象。您可能还想考虑Lienzo