首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么这个For循环在Canvas中不起作用?

为什么这个For循环在Canvas中不起作用?
EN

Stack Overflow用户
提问于 2013-02-22 16:02:56
回答 1查看 224关注 0票数 2

我试图让画布在循环中显示i -我希望i像计数t一样不断变化,从1到9不间断。我就是不明白出了什么问题。javascript如下所示:

代码语言:javascript
复制
window.requestAnimFrame = (function(){
    return  window.requestAnimationFrame       ||  
            window.webkitRequestAnimationFrame ||  
            window.mozRequestAnimationFrame    ||  
            window.oRequestAnimationFrame      ||  
            window.msRequestAnimationFrame     ||  
    function(callback){window.setTimeout(callback, 1000/60)}; 
})(); 

var cvs = document.getElementById("canvasId"),
    c = cvs.getContext("2d"),
    t = 0;

window.onload=function loop(){
    window.requestAnimFrame(loop);
    t++;

    for(i=0;i<10;i++){
        c.clearRect(0,0,cvs.width,cvs.height);
        c.font = "bold 90px Arial";
        c.fillText(i + " " + t, 100, 200);
    }
};

http://jsfiddle.net/luxiyalu/9UZU5/

这是一个小游戏的一部分,我已经被困在这里2天了;如果有人能告诉我它出了什么问题…非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-22 16:09:21

当您在绘图函数中迭代从0到9的i时,两个绘图之间没有剩余的时间,用户只能看到最后一个迭代值,即9。

我不确定你真正想要的是什么,但看起来你想要这样:

代码语言:javascript
复制
var cvs = document.getElementById("canvasId"),
    c = cvs.getContext("2d"),
    t = 0,
    i = 0;

window.onload = function loop(){
    window.requestAnimFrame(loop);
    i++;
    if (i==10) {
      i = 0;
      t++;
    }

    c.clearRect(0,0,cvs.width,cvs.height);
    c.font = "bold 90px Arial";
    c.fillText(i + " " + t, 100, 200);

};

Demonstration

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15019485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档