-1
我想在Javascript中使用setInterval来定期重画画布。但是,当我调用setInterval函数时,我传递给它的函数只运行一次。以下是我的代码的简化版本:setInterval不工作(Javascript)
<canvas id="myCanvas" width="400" height="400">
</canvas>
<script type="text/javascript">
function makeBoard()
{
this.board=[["O", " ", " "], [" ", " ", " "], [" ", "X", " "]];
}
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
var ticTacToeBoard=new makeBoard();
var drawCanvas = new Function("printBoard", "");
drawCanvas = function(printBoard)
{
alert("Calling draw function.");
// drawing code
}
setInterval(drawCanvas(ticTacToeBoard), 10);
</script>
我已经在Firefox 54.0.1和Google Chrome版本59.0上对此进行了测试。为什么这不起作用,我怎样才能让我的代码定期重画画布?
你传递调用'drawCanvas(ticTacToeBoard)''到setInterval的返回的结果()'' – Pointy
setInterval的(()=> drawCanvas(ticTacToeBoard) ,10);' – joews
你的代码基本上是'setInterval(undefined,10);' – epascarello