【发布时间】:2010-11-18 09:24:22
【问题描述】:
使用 Canvas 元素,我从一个元素到另一个元素绘制一条线 另一个元素是可拖动的,当拖动元素时,线条会跟随可拖动元素。
我的问题是渲染速度很慢(Mac PowerBook 上的 Fx 3.5) 我想我之前在 Canvas 中看到过更好的性能
任何有 Canvas 经验的人可以提供一些性能提示吗?
提前致谢
在拖拽事件上调用以下方法,
// Runs when the element is dragged.
function onDrag(key)
{
var ctx = canvas.context;
var fromRect = $('#box-' + key).offset();
var fromHeight = $('#box-' + key).height();
var fromWidth = $('#box-' + key).height();
var toRect = $('#draggable').offset();
var toWidth = $('#draggable').width();
var startX = toRect.left + toWidth / 2;
var startY = toRect.top + 4;
var endX = fromRect.left + fromWidth / 2;
var endY = fromRect.top + fromHeight / 2;
ctx.clearRect(0, 0, 5000, 5000);
ctx.beginPath();
ctx.moveTo(startX, startY);
ctx.lineTo(endX, endY);
ctx.strokeStyle = "rgba(0, 0, 0,1)";
ctx.stroke();
}
感谢您的提示,
最好的问候埃里克
【问题讨论】:
-
你用过profiler吗?正如“未知(雅虎)”所说,您的瓶颈可能是所有这些高度、宽度、偏移量测量值。
标签: javascript canvas draggable drag