0
我正在努力使用請求動畫框架創建線條繪畫動畫。雖然我使用setInterval函數一切工作正常,但我讀的地方要求ani框架更加優化,並且間隔中的所有函數都應該以這種方式編寫。使用請求動畫框在畫布中動畫繪製線條
因此,這裏是我的代碼:
VAR topMinX = 3; var topMaxX = 75; var topMinY = 2;
var topMaxY = 2; var min; var max;
//request animation frame
(function animate(){
var t = setTimeout(function(){
requestAnimFrame(animate);
var d = render(topMinX,topMaxX,topMinY,topMaxY,true);
},20);
})();
function render(xMin,xMax,yMin,yMax,direction){
if(direction){
min = xMin;
max = xMax
}else{
min = yMin;
max = yMax;
}
if(min<max){
context.beginPath();
if(direction){
context.moveTo(xMin,yMin);
xMin = xMin+2;
alert(xMin);
context.lineTo(xMin,yMax);
}else{
context.moveTo(xMin,yMin);
yMin = yMin+2;
context.lineTo(xMax,yMin);
}
context.lineWidth = 4;
context.stroke();
}
}
的問題是,XMIN值不會增加。它會一直提醒5,我預計它會在每次迭代中增加2。基本上我只想繪製一個正方形,所以我不需要任何對角線移動,這就是爲什麼我添加了方向參數。
我是新來的畫布和要求ani框架,所以任何幫助將更有用。
嗯....是的...我知道這是問題,但我不知道如何解決它:(我需要通過X和Y作爲參數,否則我將有huuuuuuuuuge遞歸。 – hjuster
基本上,最後我想調用渲染函數,它的回調將再次觸發渲染函數,但是具有不同的參數,所以它會畫出新的線,等等...... – hjuster
@hjuster:檢查出更新[小提琴](http://jsfiddle.net/79zcp/5/)這是你想要完成的更多嗎? – marbor3