Javascript 动态形状不会立即在iPad上删除

Javascript 动态形状不会立即在iPad上删除,javascript,ipad,kineticjs,Javascript,Ipad,Kineticjs,我有一个带有形状/图像的动能节点,它继承了原型函数的删除功能。除此之外,该函数还使用KineticJS destroy()函数 在浏览器上删除节点时,删除效果良好。当我尝试删除我正在使用的iPad上同一浏览器上的节点时,形状/图像不会从层中移除,直到我点击画布上的其他位置 代码如下所示: Node.prototype.delete = function(){ ... this.visual.destroy(); layer.draw(); } 其中,这是一个运动圆或一个

我有一个带有形状/图像的动能节点,它继承了原型函数的删除功能。除此之外,该函数还使用KineticJS destroy()函数

在浏览器上删除节点时,删除效果良好。当我尝试删除我正在使用的iPad上同一浏览器上的节点时,形状/图像不会从层中移除,直到我点击画布上的其他位置

代码如下所示:

Node.prototype.delete = function(){
    ...
    this.visual.destroy();
    layer.draw();
}
其中,这是一个运动圆或一个运动图像

有什么想法吗?

我发现destroy()函数非常慢。有时,在我的代码中,销毁功能最多需要10秒才能真正销毁节点。如果您不关心从层/阶段中删除节点,可以尝试以下操作:

this.visual.setAttr('visible', 'false');


这有点粗糙,但有望提高ipad的性能。

你能制作小提琴吗?@lavrton进一步调查表明,我的问题与我使用的图层有关。不幸的是,代码相当长,不值得浓缩成JSFIDLE,但还是要谢谢你!谢谢你的回复!在这种情况下,我确实需要删除节点,但对于destroy()函数花费的时间没有您所指出的那么长,我没有遇到任何问题。我的好例子就在这里:。在这里,如果您在玩游戏后选择“重新开始”按钮,它将刷新浏览器。我这样做是因为我试图调用stage.destroy()或类似的东西,或者tileLayer.destory。无论如何,这个电话花了很久!请随意使用fork并尝试用destroy替换浏览器刷新。你会对结果感到惊讶。重要的是要注意,为了让它需要一段时间才能被破坏,你需要玩一点游戏。另外,看看层的.clear()函数?也许你可以把那个节点放在它自己的层中,然后清除画布。我不知道你的逻辑是如何运作的,所以这可能不相关,但值得一试。我感谢你的建议!事实证明,在层重画调用之前的几行代码中有一行有问题的代码,所以删除该行就可以修复它!
this.visual.setAttr('opacity', 0);