@@ -122,6 +122,9 @@ if (!window.console) {
122122 } ;
123123}
124124
125+
126+ cc . isAddedHiddenEvent = false ;
127+
125128/**
126129 * <p>
127130 * setup game main canvas,renderContext,gameDiv and drawingUtil with argument <br/>
@@ -197,8 +200,37 @@ cc.setup = function (el, width, height) {
197200 }
198201 }, true);
199202 */
203+
204+ var hidden , visibilityChange ;
205+ if ( typeof document . hidden !== "undefined" ) {
206+ hidden = "hidden" ;
207+ visibilityChange = "visibilitychange" ;
208+ } else if ( typeof document . mozHidden !== "undefined" ) {
209+ hidden = "mozHidden" ;
210+ visibilityChange = "mozvisibilitychange" ;
211+ } else if ( typeof document . msHidden !== "undefined" ) {
212+ hidden = "msHidden" ;
213+ visibilityChange = "msvisibilitychange" ;
214+ } else if ( typeof document . webkitHidden !== "undefined" ) {
215+ hidden = "webkitHidden" ;
216+ visibilityChange = "webkitvisibilitychange" ;
217+ }
218+
219+ function handleVisibilityChange ( ) {
220+ if ( ! document [ hidden ] )
221+ cc . Director . getInstance ( ) . _resetLastUpdate ( ) ;
222+ }
223+
224+ if ( typeof document . addEventListener === "undefined" ||
225+ typeof hidden === "undefined" ) {
226+ cc . isAddedHiddenEvent = false ;
227+ } else {
228+ cc . isAddedHiddenEvent = true ;
229+ document . addEventListener ( visibilityChange , handleVisibilityChange , false ) ;
230+ }
200231} ;
201232
233+
202234/**
203235 * Run main loop of game engine
204236 * @class
@@ -244,7 +276,7 @@ cc.Application = cc.Class.extend(/** @lends cc.Application# */{
244276 return 0 ;
245277 }
246278 // TODO, need to be fixed.
247- if ( window . requestAnimFrame && this . _animationInterval == 1 / 60 ) {
279+ if ( window . requestAnimFrame && this . _animationInterval == 1 / 60 ) {
248280 var callback = function ( ) {
249281 cc . Director . getInstance ( ) . mainLoop ( ) ;
250282 window . requestAnimFrame ( callback ) ;
0 commit comments