Сообщение от Яростный Меч
|
window.onblur
|
Не то. Я в теги <body> запускаю функцию с помощью события onLoad. все происходит замечательно все работает пока я на вкладке. Но как только перехожу в другую вкладку происходит вот что. Функция работает но не с заданной задержкой, а на много медленней. Но скрипт при этом работает.
Как отрегулировать данную ситуацию?
Вот сам скрипт:
var delay = 2; // задержка изменения очков здоровья
var TimerOn = -1;
var tkHP, HP, tkMP, MP;
var speed=100;
var mspeed=100;
//-- Смена хитпоинтов (очков здоровья) со временем
function setEnergy(valueHP, maxHP, valueMP, maxMP, newspeed, name) {
tkHP=valueHP;
HP=maxHP;
tkMP=valueMP;
MP=maxMP;
nickname=name;
if (TimerOn>=0) {
clearTimeout(TimerOnHP);
TimerOn=-1;
}
speed=newspeed;
setEnergylocal();
}
function setEnergylocal(){
if (tkHP>HP) {
tkHP=HP;
$.ajax({
url:'classes/chars.php',
type: "GET",
data:{
HP: tkHP,
MP: tkMP,
NickName: nickname
},
cache: false,
success: function(response){
if(response == "no"){
alert('Error 1!');
}
}
});
}
if (tkMP>MP) {
tkMP=MP;
$.ajax({
url:'classes/chars.php',
type: "GET",
data:{
HP: tkHP,
MP: tkMP,
NickName: nickname
},
cache: false,
success: function(response){
if(response == "no"){
alert('Error 1!');
}
}
});
}
var sz1 = Math.round((190/HP)*tkHP);
var sz2 = 0;//186 - sz1;
var sz3 = Math.round((190/MP)*tkMP);
var sz4 = 0;//186 - sz3;
if (document.all("HP") && document.all("MP")) {
document.HP1.width=sz1;
document.HP2.width=sz2;
document.MP1.width=sz3;
document.MP2.width=sz4;
document.HP1.src='img/chars/stats/1red.gif';
document.MP1.src='img/chars/stats/1blue.gif';
var s = document.all("HP").innerHTML;
document.all("HP").innerHTML = s.substring(0, s.lastIndexOf(':')+1) + "</span><div class='coll_up'>" + (tkHP/HP*100).toFixed(1)+"%</div>";
var s = document.all("MP").innerHTML;
document.all("MP").innerHTML = s.substring(0, s.lastIndexOf(':')+1) + "</span><div class='coll_up'>" + (tkMP/MP*100).toFixed(1)+"%</div>";
}
tkHP = (tkHP+(HP/100)*speed/1000);
tkMP = (tkMP+(MP/100)*speed/1000);
if (tkHP<HP || tkMP<MP) {
TimerOn=setTimeout('setEnergylocal()', delay*100);
$.ajax({
url:'classes/chars.php',
type: "GET",
data:{
HP: tkHP,
MP: tkMP,
NickName: nickname
},
cache: false,
success: function(response){
if(response == "no"){
alert('Error 1!');
}
}
});
}else {
TimerOnHP=-1;
}
}