对无限循环错误进行故障排除
Troubleshooting an infinite loop error
我正在尝试以随机x,y在画布上绘制一组图像,但它给了我一个无限循环......这是我的代码
var fruits = ["fruit1.png", "fruit2.png", "fruit3.png", "fruit4.png"];
var monsterReady1 = true;
var draw = function() {
for (var i = 0; i < fruits.length; i++) {
monsterImage1 = new Image();
monsterImage1.onload = function () {
monster1.x = (Math.random() * (canvas.width - 100));
monster1.y = (Math.random() * (canvas.height - 100));
ctx.drawImage(this, monster1.x, monster1.y);
};
monsterImage1.src = fruits[i];
}
};
var render = function() {
if (monsterReady1) {
draw();
}
var main = function () {
update();
render();
requestAnimationFrame(main);
};
你在main()
函数中有递归。这是requestAnimationFrame()的正常行为。调用该函数无限来绘制每一帧的画布是正常的。
执行render()
时也有递归。您不需要一次又一次地调用 render。从render()
正文传递呈现调用
var render = function(){
if (monsterReady1) {
draw();
}
var main = function () {
update();
render(); // THIS is error. You should not call render again
requestAnimationFrame(main); // This will call main function infinite loop. Expected.
}
};
//render(); // Better to call it here
顺便说一下,在您提供的代码中存在语法错误。您错过了一个右括号
相关文章:
- JS条件故障排除
- Django无法通过urls.py配置找到djangular/app.js文件.如何进行故障排除
- 对 Drupal 站点的客户端 JS 问题进行故障排除
- iMacros机架名称故障排除
- jQuery输入值故障排除
- JavaScript数学&警报故障排除
- 对 AJAX XMLHTTP 对象创建进行故障排除
- 附加 JSON 对象编号 - 故障排除
- JSON - 如果语句故障排除
- 基本调用函数故障排除
- 对使用 iframe 的简单 jquery 展开/折叠进行故障排除
- 对简单的 JavaScript 幻灯片进行故障排除
- Dygraph 对 CSV 进行故障排除
- 对无限循环错误进行故障排除
- 使用 JS 进行故障排除
- jQuery .hover 函数故障排除
- 如何对以下 js 索引脚本进行故障排除
- 对 jQuery 切换进行故障排除
- 对 Stripe 的 JavaScript 进行故障排除
- 替换c#函数bijJquery在不知道如何进行故障排除的情况下不起作用