【发布时间】:2014-12-27 09:48:34
【问题描述】:
我正在开发一个 JQuery 插件,它在对象的每个实例中使用一个间隔。
问题是,如果我创建三个实例,那么只有最后一个实例的最后一个间隔是可用的。
这是设置间隔的代码:
function init()
{
beep();
score=0;
direction = "right";
create_player();
getstats();
drawBackground();
drawCell(player.x,player.y,settings.colors.Stroke);
if(typeof game_loop != "undefined") clearInterval(game_loop);
game_loop = setInterval(loop, settings.gameSpeed);
}
这也是我初始化 game_loop 的对象的开始
$.fn.JObject = function(options)
{
var parent = $(this);
var game_loop;
........
这就是我对对象的称呼
$("#screen1").JObject();
$("#screen2").JObject();
$("#screen3").JObject();
不应该因为我创建的每个对象的游戏循环都在对象的 {} 内,所以它是唯一的吗? 那么为什么会发生冲突呢?
【问题讨论】:
-
很难从您发布的内容中看出这一切是如何结合在一起的。你会做一个小提琴吗?
-
这只是游戏循环,所有这些都发生在第一个代码框中。我测试了这是行。发布的代码太多了。
-
你的意思是只有最后一个实例可以运行?它应该做什么,而不是做什么?
-
它每隔几毫秒使用一个绘图循环在画布内绘制数据。当我在页面中创建一个实例时,一切运行正常。如果我制作多个实例,那么在循环函数之外发生的第一个渲染也可以正常工作。但是当涉及到实际循环时,只有最后一个对象才能正确渲染。似乎它们共享相同的间隔,但我希望每个实例具有不同的间隔。
标签: jquery instance setinterval conflict intervals