2012-07-09 90 views
2

我们的项目使用各种库(动态Js,jquery,buzz.js等),我们有很多动画正在进行,有些声音同时播放,我们的目的是停止所有JavaScript在用户更改标签或浏览器窗口时进行处理,从而失去焦点。JavaScript代码在失去焦点时停止

我们知道onBluronFocus使我们能够检测到这种变化,并且使用一个setTimeOut函数我们可以阻止它。我们想知道是否有更有效的做法或更低水平的解决方案。

在此先感谢。

+1

模糊仅适用于实际接受焦点的元素 - 并非全部都是。当标签或浏览器失去窗口焦点时,某些浏览器会自动推迟执行某些操作(例如Chrome停止播放Flash,我认为)。我会想,按照“检测标签当前是否有效”的方式进行搜索会产生一些结果。 – Utkanos 2012-07-09 11:55:56

回答

1

这些天来,有requestAnimationFrame()http://dvcs.w3.org/hg/webperf/raw-file/tip/specs/RequestAnimationFrame/Overview.html

条有关浏览器支持的信息,以及如何在不支持它的浏览器来模拟:http://paulirish.com/2011/requestanimationframe-for-smart-animating/

+0

我们同时播放动画和声音。当前标签失去焦点时,声音仍会播放,但动画会冻结。我们使用CreateJS来做动画和BuzzJS来播放声音。 我们的问题不在于CPU使用率,而是为了控制动画+声音。 我们可以做些什么来避免动画冻结?或者,另一方面,我们如何才能完成停止声音和动画,当它失去焦点? – 2012-07-09 13:56:44

+1

你的声音是否连续或与动画同步? – 2012-07-09 14:00:53

+0

我们试着让声音与动画同步。一些动画包含文本的一部分,相应的声音是指定文本的人。 – 2012-07-09 14:12:29