Функция не определена ошибка в JavaScript - PullRequest
0 голосов
/ 04 мая 2011

Я создаю игру на javascript вместе с html5.Я хочу, чтобы на моей главной странице отображалось немного текста, а затем, когда я нажимаю любую кнопку, предположим, что если «p», то начинается настоящая игра.В этом случае я использовал флаг для переключения между двумя функциями, одна из которых выводит первую страницу, а другая фактически запускает игру.вот мой код

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 () не определен Кто-нибудь может решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 04 мая 2011

Ответ: http://jsfiddle.net/morrison/HrRD6/

Примечания:

  • Нет смысла снова искать холст, если вы его уже нашли. Сохранение холста в lib.canvas и его повторное извлечение, похоже, и решили проблему.
  • Использовать функции в стиле библиотеки . Это помогает избежать конфликтов имен.
  • Приведите в порядок ваш код. Я часто использую jsfiddle , поэтому я запускаю его там, или вы можете попробовать formatjavascript или javascriptbeautifier .
0 голосов
/ 04 мая 2011

init () работает для меня в Chrome.Какой браузер вы используете?В какой области находится код?

Кроме того, насколько мне известно, JavaScript может быть неправильно обработан, если он не имеет отступов, например:

if (bool) {
  // stuff
}

Попробуйте запустить код через JSLint .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...