如果没有chrome中的页面重新加载,动画运行速度较慢且无法重放

时间:2013-05-12 12:23:23

标签: javascript google-chrome animation html5-canvas easeljs

您好我正在学习使用easelJS编写基于浏览器的游戏。教程很顺利,但我在Chrome上播放动画时发现了一些问题。

Chrome运动动画效果较慢,一旦相同的动画无法再次播放,一旦完成播放,除非我重新加载页面。

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

这是链接:(使用inspect元素代码)

http://david.blob.core.windows.net/easeljstutorials/easelJSSpritesTutorial03.html

我听说Chrome中存在一些缓存问题,所以我认为这可能是问题所在。 手动删除缓存确实允许动画在没有页面重新加载的情况下再次播放,但它仍然运行缓慢(将其与firefox进行比较)。

由于我想编写跨浏览器兼容性的代码,因此有一种受支持的方式来解决这些问题吗?如阻止将图像存储在缓存中还是什么? (我希望最后一招)

提前致谢,

恭平

编辑:似乎动画的速度在ie10上是相同的,所以不知道你应该知道它的速度。

2 个答案:

答案 0 :(得分:0)

“重置”后无法使用的原因是您依靠图像加载事件来启动动画。这将是第一次,但第二次,图像已经加载,因此你永远不会从图像中获得onload事件(意思是没有“startGame()”。

由于这是一个简单的例子,也许最好的方法是每次都创建新的图像。只需将这些行移动到init:

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

答案 1 :(得分:0)

我读了一篇文章Fix your Timestep它会对你有所帮助,只需将其转换为javascript,仔细阅读。