Je suis en train d'apprendre HTML5 (et OO Javascript) et j'essaie de faire un moteur de jeu simple mais le rendu sur toile fonctionne dans des conditions très étranges. Here est un lien vers la page et voici mon index.html:
HTML5 Toile de rendu bizarrement
<html>
<head>
<script type="text/javascript">
function load()
{
var game = new Game();
game.start();
}
</script>
<title>Game</title>
<style>
canvas
{
outline:0;
border:1px solid #000;
margin-left: auto;
margin-right: auto;
}
</style>
</head>
<body onload="load()">
<canvas id='c'></canvas>
<script src="classes/Tuple.js"></script>
<script src="classes/Rect.js"></script>
<script src="classes/Sprite.js"></script>
<script src="classes/Game.js"></script>
</body>
</html>
lors du premier chargement, il donnera un NS_ERROR_DOM_TYPE_MISMATCH_ERR Exception dans Firefox 11.0 et un TypeError Exception dans Chrome 18.0. Pour le faire fonctionner:
Firefox 11,0
- sélectionnez l'URL dans la barre d'adresse et appuyez sur Entrée manuelle OU
- cliquez sur le bouton Actualiser
- appuyez sur F5.
Chrome 18,0
- sélectionnez l'URL dans la barre d'adresse et cliquez manuellement sur Entrée ou
- cliquez sur le bouton Actualiser
- Appuyez sur F5 ou
- appuyez sur Maj/Ctrl + F5.
Ce que je soupçonne - Juste une supposition, mais il semble que l'un ou plusieurs des fichiers .js ne sont pas disponibles/prêt au moment où il est appelé lors de la première charge de page. Après l'avoir traversé plusieurs fois dans Firebug, il semble que les images des sprites ne soient jamais chargées sur la première page.
Peut-être certains des fichiers .js sont-ils toujours en cours de téléchargement lorsque l'instanciation à Game() est en cours, puis mise en cache, et sont uniquement disponibles lors du chargement de la deuxième page?
Des idées? Je vous serais reconnaissant de votre compréhension, merci!
Hmm, j'ai fait de Game.js le premier des quatre inclus mais je semble avoir le même comportement (je force rafraîchi donc je ne sors pas d'une copie cachée) –