Autor Zpráva
lukasB
Profil *
Ahoj,

mám problém s canvasem v Safari (v IE, Firefoxu, Opeře i Chromu to normálně funguje). Kód, který uvádím níže se v Safari provede tak že si se mi vypíše to ta proměná realFPS 1 a tím to končí to znamená že se dále neinkrementuje do nekonečna.

$(function() {
    
     var canvas = document.getElementById('GameCanvas'); // odkaz na objekt canvasu
    var context = document.getElementById('GameCanvas').getContext('2d'); // odkaz na 2d kontext canvasu
    
     var Game = {
        
         scale: 16, // zakladni velikost jedne dlazdice
        realFPS: 0, // skutecny pocet vykreslovanych snimku za sekundu
        
         // inicializuje objekt Game
        init: function() {
                
             this.cycle(); // spust hlavni animacni cyklus
        },
        
         // hlavni animacni cyklus hry
        cycle: function() {
            
             this.debug(); // vypis hodnoty zvolenych promenych
            
             setTimeout(function() { // nastaveni doby spanku pred dalsim volanim animacniho cyklu
                this.cycle(); // opakuj animacni cyklus
            }.bind(this), 100); // vypocet doby spanku pro zvoleny limit PFS
            
         },
        
         // vypis hodnot zvolenych promenych
        debug: function() {
            
             this.realFPS++;
            $('.DebugScreen').html('<b>FPS:</b> ' + this.realFPS; // vypis aktualni FPS
        },
        
     }
    
     Game.init(); // spusteni hry
});
YOYO
Profil
v safari nějak nefunguje ta metoda .bind(this) ... zkus si třeba uložit lokální kontext do proměnné,..
cycle: function() {
             var that = this;
             this.debug(); // vypis hodnoty zvolenych promenych
            
              setTimeout(function() { // nastaveni doby spanku pred dalsim volanim animacniho cyklu
                that.cycle(); // opakuj animacni cyklus
            }, 100); // vypocet doby spanku pro zvoleny limit PFS
            
          },

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0