Javascript 动画运行速度较慢,并且不会';在chrome中不重新加载页面就无法重播

Javascript 动画运行速度较慢,并且不会';在chrome中不重新加载页面就无法重播,javascript,google-chrome,animation,html5-canvas,easeljs,Javascript,Google Chrome,Animation,Html5 Canvas,Easeljs,大家好,我正在学习使用easelJS编写基于浏览器的游戏的教程。教程进行得很顺利,但我注意到在chrome上播放动画时出现了一些问题 Chrome运行动画的速度较慢,一旦播放完毕,同一动画将不会再次播放,除非我重新加载页面 在Firefox中运行时,它没有任何这些问题 以下是链接:(使用代码的inspect元素) 我听说chrome中存在一些缓存问题,所以我认为这可能就是问题所在。 手动删除缓存实际上允许动画在不重新加载页面的情况下再次播放,但它仍然运行缓慢(与firefox相比) 当我想为跨

大家好,我正在学习使用easelJS编写基于浏览器的游戏的教程。教程进行得很顺利,但我注意到在chrome上播放动画时出现了一些问题

Chrome运行动画的速度较慢,一旦播放完毕,同一动画将不会再次播放,除非我重新加载页面

在Firefox中运行时,它没有任何这些问题

以下是链接:(使用代码的inspect元素)

我听说chrome中存在一些缓存问题,所以我认为这可能就是问题所在。 手动删除缓存实际上允许动画在不重新加载页面的情况下再次播放,但它仍然运行缓慢(与firefox相比)

当我想为跨浏览器兼容性编写代码时,chrome中是否有支持的方法来解决这些问题?比如阻止将图像存储在缓存中或其他什么?(我希望这是最后的办法)

提前感谢,

京海


编辑:在ie10上,动画的速度似乎是相同的,因此不确定它应该是什么速度。在“重置”后,这将不起作用的原因是您依赖图像加载事件来启动动画。这将在第一次工作,但第二次,映像已经加载,因此您永远不会从映像中获得onload事件(表示没有“startGame()”

因为这是一个简单的示例,所以最好的方法可能是每次创建新图像。只需将这些行移到init中:

function init() {
    var imgMonsterARun = new Image();
    var imgMonsterAIdle = new Image();
    // Other stuff
}

我读了一篇文章,它将帮助你,只需要将其转换为javascript,仔细阅读。

你的描述听起来像是内存溢出。看这个线程缓存只会影响你更改动画后的外观,不会影响速度!-很难说你的问题是什么,不看你的code@olsn谢谢可以使用浏览器检查元素功能在我问题中的链接后查看e代码。@SameerH.Ibra我查看了你的链接,但它似乎与我的链接相反。我在firefox上的动画速度似乎比chrome和ie更快。有没有办法强迫浏览器以几乎完全相同的速度显示动画?我理解你的推理,谢谢你或者回答。如果这是tbe..问题是ie和ff中的情况不一样吗?在那些浏览器上,当按下“开始”按钮时,动画可以很好地回放?还有没有办法避免每次重新创建图像,因为当我转到自己的游戏时,我希望它们像pos一样高效?当然,感谢到目前为止的回答,事实上,above是一个糟糕的做法。我只是指出它失败了,因为onload从未启动。你的开始按钮应该做一些其他的事情。比如'if(alreadyLoaded){startGame();}else{loadImagesThenStartGame();}好的,很酷的np。如果你更新你的答案以包含上面更好的做法,那么我会接受它作为答案:)谢谢。