Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> poruszanie strzałkami - problem na firefoxie
wezyrno
post 30.06.2012, 14:20:57
Post #1





Grupa: Zarejestrowani
Postów: 130
Pomógł: 0
Dołączył: 11.09.2011

Ostrzeżenie: (50%)
XXX--


Jest to skrypt wprawiający postać w ruch w momencie, gdy wciśniemy poszczególne klawisze strzałek.
Wszystko byłoby pięknie, gdyby na przeglądarce Mozilla Firefox działał równie doskonale co na Google Chrome.

Na Google Chrome postać porusza się płynnie i nie zacina. W przypadku Mozilli Firefox postać na chwile przyspiesza, aby po kilku sekundach całkowicie zwolnić. Za każdym razem od tego momentu, gdy wciskam strzałkę, postać porusza się w bardzo zwolnionym tempie.

Czy moglibyście znaleźć rozwiązanie tego problemu?

Kod
var x1;
var cos2 = 0;
var walking = false;

function start_walking(event) {
    var klawisz = event.keyCode ? event.keyCode :
    event.which ? event.which : event.charCode;
    if(walking == false) {
        
        if(klawisz == 38) {
           x1 = setInterval('tryt('+klawisz+');', 11);
        }
        if(klawisz == 40) {
           x1 = setInterval('tryt('+klawisz+');', 11);
        }
        if(klawisz == 37) {
           x1 = setInterval('tryt('+klawisz+');', 11);
        }
        if(klawisz == 39) {
           x1 = setInterval('tryt('+klawisz+');', 11);
        }
    }
}

function tryt(klawisz) {
    walking = true;

    if(klawisz == 38) {
        var a = document.getElementById('player')
        var pol = a.offsetTop
        a.style.top = pol-1+'px'
    }
    if(klawisz == 40) {
        var a = document.getElementById('player')
        var pol = a.offsetTop
        a.style.top = pol+1+'px'
    }
    if(klawisz == 37) {
        var a = document.getElementById('player')
        var pol = a.offsetLeft
        a.style.left = pol-1+'px'
    }
    if(klawisz == 39) {
        var a = document.getElementById('player')
        var pol = a.offsetLeft
        a.style.left = pol+1+'px'
    }
    ///////////////////////////////////////

    if(klawisz >= 37 && klawisz <=40) {
        cos2 = cos2 + 1;
        if(cos2 > 24 && cos2 < 33) {
            if(cos2 == 32 || cos2 == 32) {
                clearInterval(x1);
                cos2 = 0;
                walking = false;
            }
        }
    } else {
        walking = false;
    }
}
Go to the top of the page
+Quote Post
kamil4u
post 30.06.2012, 15:03:45
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


Umieść kod gdzieś na serwerze, razem z HTML i CSS. Np. tu: http://jsfiddle.net/ . Lubię widzieć co się dzieje i naprawiać skrypty( szczególnie cudze ) metodą prób i błędów.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 23:37