我碰到了一堵牆,試圖弄清楚這一點。我是OO Javascript的新手,並試圖將我的第一個類/對象放在一起。我試圖創建一個畫布加載器,它不工作。我已經縮小了錯誤到我的時鐘類中的animate函數中的requestAnimationWindow部分。我得到一個對象[對象全局]沒有方法'動畫'錯誤。這是我的代碼。從javascript對象中調用requestAnimationFrame
HTML:
<div id="loader"><canvas id="showLoader" width="250" height="250"></canvas><div id="showTimer"><p id="elapsedTime">
<script>
var clockTest = new clock(document.getElementById("showLoader"), 0, 100);
clockTest.animate();
</script>
</p></div></div>
的Javascript:
function clock(canvas, curPerc, endPrecent){
var showPerc = document.getElementById("elapsedTime");
this.canvas = document.getElementById("showLoader");
var context = this.canvas.getContext('2d');
var x = this.canvas.width/2;
var y = this.canvas.height/2;
var radius = 75;
this.curPerc = 0;
this.endPercent = 110;
var counterClockwise = false;
var circ = Math.PI * 2;
var quart = Math.PI/2;
context.lineWidth = 10;
context.strokeStyle = '#ed3f36';
this.animate = function(current) {
this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);
this.context.beginPath();
this.context.arc(x, y, radius, -(quart), ((circ) * current) - quart, false);
this.context.stroke();
this.curPerc++;
if(this.curPerc < this.endPercent) {
requestAnimationFrame(function() {
this.animate(curPerc/100);
showPerc.innerHTML = this.curPerc + '%';
});
}
};
}
任何提示讚賞。謝謝!
上面的代碼示例缺少'this.animate'上方的'this.context = context'。這裏有一個小提琴你可以顯示人民:http://jsfiddle.net/v45K8/ – Jorg