我正在用JavaScript和html5构建一款游戏。我想让我的首页显示一些文本,然后当我按下任何按钮假设如果p,那么实际的游戏开始。
我在这个例子中使用了flag在两个函数之间切换,一个带来首页,另一个实际上是开始游戏。下面是我的代码:
var flag1 =true;
function init()
{
canvas = document.getElementById('canvas');
region = canvas.getContext('2d');
if(flag1==true)
{
front();
}
else
{
start();
}
}
function front()
{
document.write("press p to play");
document.onkeydown = function(event)
{
var keyCode;
if(event == null)
{
keyCode = window.event.keyCode;
}
else
{
keyCode = event.keyCode;
}
switch(keyCode)
{
case 80:
flag1=false;
init();
break;
default:
break;
}
}
}
function start()
{
*************
*********
*********
}
每当我按p,即
时,这段代码在控制台中给出错误。init()没有定义
谁能解决这个问题?
答:http://jsfiddle.net/morrison/HrRD6/
指出:
- 如果你已经找到了canvas,那么再找它就没有意义了。将画布存储到lib中。
- 使用库风格的函数。这有助于避免命名冲突。
- 整理代码。我经常使用jsfiddle,所以我在这里运行它,或者你可以尝试formatjavascript或javascriptbeautifier。
init()在chrome中为我运行。您使用的是哪种浏览器?代码的作用域是什么?
此外,据我所知,如果JavaScript没有像这样缩进,可能会被错误解析:
if (bool) {
// stuff
}