我的设置:
我有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
}
答案 0 :(得分:0)
“重用和清除”是优越的。它更有效,因为它只调用本机clearRect(x, y, w, h)
。在添加和删除小部件期间会发生许多事件。只有当它是一个逻辑概念时我才会使用新对象。您可能还想考虑Lienzo。