Autor | Zpráva | ||
---|---|---|---|
lukasB Profil * |
#1 · Zasláno: 3. 1. 2012, 00:43:03
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 |
#2 · Zasláno: 3. 1. 2012, 01:49:57
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 }, |
||
Časová prodleva: 12 let
|
0