저는 HTML5 (및 OO Javascript)를 배우는 과정에 있으며 간단한 게임 엔진을 만들려고 노력하고 있지만 캔버스에 렌더링하는 것은 매우 이상한 조건에서 작동합니다. Here 페이지에 대한 링크이며, 여기 내 index.html을이다 : 처음로드 할 때
HTML5 Canvas rendering oddly
<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>
, 그것은 파이어 폭스 11.0에 NS_ERROR_DOM_TYPE_MISMATCH_ERR 예외와 형식 오류를 줄 것이다 Chrome 18.0의 예외 그것이 작동되도록하려면
파이어 폭스 11.0
- 을 수동으로 주소 표시 줄에 URL을 선택하여 입력 또는
- 가 새로 고침 버튼 또는
- F5 키를 클릭했다. 크롬 18.0
는 주소 표시 줄에 URL을 선택하고 수동으로 입력하거나
- 가 새로 고침 버튼 또는
- F5 키를 눌러 또는
- 시프트 (Shift) 키를 누르면/Ctrl + F5를 클릭했다.
내가을 의심 무엇 - 그냥 추측하지만이의 .js 파일 중 하나 이상처럼 보인다는 첫 번째 페이지로드하는 동안 호출 될 때까지 준비/사용할 수 없습니다. Firebug에서 몇 번 밟아서 첫 페이지 요청시 스프라이트 이미지가로드되지 않는 것 같습니다.
Game()이 생성되고 캐시 된 다음 두 번째 페이지로드에서만 모든 .js 파일의 인스턴스가 다운로드 될 수 있습니다.
아이디어가 있으십니까? 고마워, 고마워!
흠, 4 가지 중 첫 번째를 Game.js로 만들었지 만 동일한 동작을하고있는 것처럼 보입니다. (강제로 새로 고쳐서 캐시 된 복사본을 만들지 않습니다) –