好吧,我已經構建了一個繪圖應用程序,它包含一個使用HTML畫布的繪畫工具。油漆桶的問題在於,儘管我儘可能提高了效率,但需要很長時間才能做出響應。這是瀏覽器沒有得到足夠處理能力的問題嗎? Javascript是否很慢?畫布是否緩慢?我如何加快這個JavaScript繪畫應用程序?
對於像這樣的處理器密集型功能,Java會是最好的選擇嗎?或者也許閃光?
好的,這裏有一些代碼。頂部(換行符之前)運行,然後換行符下面的部分運行四次,光標每個方向一個。 (左,上,右,下)顯示的一個顯然是左邊一個像素。
if (typeof paintPos[x] === 'undefined') {
paintPos[x] = {};
}
paintPos[x][y] = x+'|'+y;
var runRecurse = 0;
if (typeof paintPos[x-1] === 'undefined') {
runRecurse = 1;
} else if (typeof paintPos[x-1][y] === 'undefined') {
runRecurse = 1;
}
if (runRecurse === 1) {
if (x-1 >= 0) {
var colData = ctx.getImageData(x-1, y, 1, 1).data;
var colHexNew = "#" + ("000000" +
rgbToHex(colData[0],colData[1],colData[2])).slice(-6);
if (colHex === colHexNew) {
setPaintPos(x-1,y,colHex);
}
}
}
然後,爲了真正在作畫,我只是這樣做:
$.each(paintPos,function(key,value) {
$.each(paintPos[key],function(key2,value2) {
var paintCol = value2.split('|');
var paintX = paintCol[0];
var paintY = paintCol[1];
ctx.fillRect(paintX,paintY,1,1);
});
});
答:也許。告訴我們你的代碼。 – SLaks
沒有代碼,你的問題過於主觀,可能會引發爭論。現在好多了。 –