【问题标题】:Multiple intervals conflicting in Jquery Object's InstancesJquery对象实例中的多个间隔冲突
【发布时间】: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();

不应该因为我创建的每个对象的游戏循环都在对象的 {} 内,所以它是唯一的吗? 那么为什么会发生冲突呢?

JSFIDDLE

【问题讨论】:

  • 很难从您发布的内容中看出这一切是如何结合在一起的。你会做一个小提琴吗?
  • 这只是游戏循环,所有这些都发生在第一个代码框中。我测试了这是行。发布的代码太多了。
  • 你的意思是只有最后一个实例可以运行?它应该做什么,而不是做什么?
  • 它每隔几毫秒使用一个绘图循环在画布内绘制数据。当我在页面中创建一个实例时,一切运行正常。如果我制作多个实例,那么在循环函数之外发生的第一个渲染也可以正常工作。但是当涉及到实际循环时,只有最后一个对象才能正确渲染。似乎它们共享相同的间隔,但我希望每个实例具有不同的间隔。

标签: jquery instance setinterval conflict intervals


【解决方案1】:

对不起。间隔没有错误,但显然是画布上下文变量 ctx 的变量声明不正确造成的错误。

【讨论】:

    猜你喜欢
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 2018-11-13
    • 2018-06-16
    相关资源
    最近更新 更多