2015-05-05 6 views
1

У меня проблема с вызовом функции с Phaser. Я Javascript Noob и не знаю, что я делаю неправильно.Javascript Functioncall Socket.io и Phaser

Вот критическая часть моего кода, весь код находится в том же файле.

BasicGame.Multiplayer = function (game) { 
}; 

    BasicGame.Multiplayer.prototype = { 

     create: function(){ 
      this.socket = io.connect('localhost:3010'); 
      this.socket.on('startGame', function() { 
       console.log('ShouldStartGame'); 
       this.createActualGame(); 
      }); 
}, 

createActualGame: function(){ 
     // Define constants 
     } 
} 

Моя проблема заключается в том, что функция this.createActualGame не вызывается с ошибкой: «TypeError: this.createActualGame не является функцией». Но консольный журнал работает отлично.

Без сокета.on (...) код работает нормально, и функция вызывается с помощью инструкции «this.createActualGame()», но witin в socket.on (...) он не работает и я понятия не имею, почему и не знаю, как это можно решить. Большое спасибо за Вашу помощь.

С наилучшими пожеланиями, SirSandmann

ответ

1

Попробуйте также:

create: function(){ 
     this.socket = io.connect('localhost:3010'); 
     this.socket.on('startGame', function() { 
      console.log('ShouldStartGame'); 
      this.createActualGame(); 
     }.bind(this)); 
    }, 

Или просто:

BasicGame.Multiplayer.createActualGame();

+0

Эй, спасибо за быстрый ответ, но ни один из вариантов не работает. Для опции .bind я получаю ошибки «TypeError: socket.on (...). Bind не является функцией Multiplayer.js: 18: 0 TypeError: this.createActualGame не является функцией» и для BasicGame. Multiplayer.createActualGame() я получаю тот же «TypeError: this.createActualGame не является функцией» – SirSandmann

0
socket = io.connect('localhost:3010'); 
     socket.on('startGame', function() { 
      console.log('ShouldStartGame'); 
      this.createActualGame(); 
     }.bind(this)); 

ли решение проблемы. (вы неправильно устанавливаете скобки)

+0

Ага спасибо, я обновил свой ответ - рад, что он работает! – pseux

Смежные вопросы