2012-07-09 37 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