Я изучаю HTML5 (и OO Javascript), и я пытаюсь сделать простой игровой движок, но рендеринг на холст работает в очень странных условиях. Here является ссылка на страницу и вот мой index.html:
HTML5 рендеринг холста странно
<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>
При первой загрузке, это даст NS_ERROR_DOM_TYPE_MISMATCH_ERR Exception в Firefox 11.0 и TypeError Исключение в Chrome 18.0. Для того, чтобы сделать его работу:
Firefox 11,0
- выберите URL в адресной строке и вручную нажмите клавишу ВВОД ИЛИ
- нажмите кнопку обновления ИЛИ
- нажмите F5.
Chrome 18,0
- выберите URL в адресной строке и вручную нажмите клавишу ВВОД ИЛИ
- нажмите кнопку обновления ИЛИ
- нажать клавишу F5 или
- нажмите Shift/Ctrl + F5.
То, что я подозреваю, - только предположение, но мне кажется, как один или несколько файлов .js не доступен/готов к тому времени, это называется во время первой загрузки страницы. Пройдя несколько раз в Firebug, кажется, что спрайты не загружаются в первый запрос страницы.
Возможно, некоторые из файлов .js по-прежнему загружаются при создании, затем кешировании экземпляра в Game(), и все они доступны только при загрузке второй страницы?
Любые идеи? Я был бы благодарен за ваше взятие, спасибо!
Хм, я сделал Game.js первый из четырех включений, но я, похоже, получаю такое же поведение (я обновляю силу, чтобы я не уходил из кешированной копии) –