添加暂停和恢复到我的代码

时间:2013-08-25 14:12:55

标签: javascript cordova

如何在移动浏览器处于后台时自动暂停计时器,并在我们将其用于我的代码时恢复计时器。我没有任何想法,我尝试使用phonegap事件功能,但我不能让它工作。关于如何编码的任何想法......

<script type="text/javascript">
/*<![CDATA[*/

var zxcMatch={

 Reset:function(id){
  var o=this[id],z0=0;
  if (o){
   clearTimeout(o.to);
   o.time[1]=null;
   for (;z0<o.imgs.length;z0++){
    o.imgs[z0].style.visibility='visible';
   }
   o.cnt=z0/2;
   o.lst=null;
  }
 },

 init:function(o){
  var id=o.ParentID,imgs=document.getElementById(id).getElementsByTagName('IMG'),z0=0;
  o.imgs=imgs;
  for (;z0<imgs.length;z0++){
   this.addevt(imgs[z0],'mouseup','match',o,imgs[z0]);
  }
  o.time=[typeof(o.Timer)=='function'?o.Timer:null];
  o.cnt=z0/2;
  this[id]=o;
 },

 match:function(o,img){
  if (o.time[0]&&!o.time[1]){
   o.time[1]=new Date();
   o.to=setInterval(function(){ o.time[0](o,Math.floor((new Date()-o.time[1])/1000)); },1000);
  }
  if (!o.lst){
   o.lst=img;
  }
  else {
   if (o.lst.className==img.className&&o.lst!=img){
    img.style.visibility=o.lst.style.visibility='hidden';
    o.cnt--;
    if (o.cnt==0){
     clearTimeout(o.to);
     o.time[1]=null;
     o.Complete();
    }
   }
   else {
    alert('try again');
   }
   o.lst=null;
  }
 },

 addevt:function(o,t,f,p,p1){
  var oop=this;
  o.addEventListener?o.addEventListener(t,function(e){ return oop[f](p,p1);},false):o.attachEvent?o.attachEvent('on'+t,function(e){ return oop[f](p,p1); }):null;
 }


}

zxcMatch.init({
 ParentID:'match-holder',
 Timer:function(o,sec){
  document.getElementById('count').innerHTML=30-sec;
  if (sec>29){
    alert('Time Out');

  }
 },
 Complete:function(){
//  window.top.location='http://www.stackoverflow.com/';
 }
});
/*]]>*/
</script>
<span id="count" ></span> 

0 个答案:

没有答案