2015-04-27 3 views
1

Я создал кнопку в Phaser:кнопку Phaser не вызывает функцию

//---------------------------------Boot 
module.exports = { 

init: function() { 
    closeButton = game.add.button(w/1.47, h/1.272, 'close', this.closeProf, this); 
    closeButton.fixedToCamera = true; 
    closeButton.inputEnabled = true; 
}, 

closeProf: function() { 
    alert('aaa') 
} 
}; 

Module.exports - это Browserify.

В главном файле есть этот код:

//---------------------------------Main 
window.game = new Phaser.Game((h > w) ? h : w, (h > w) ? w : h, Phaser.CANVAS, 'game', {render:render}); 

var ship; 
var cursors; 
var sun1; 
var rc; 
var space; 

var profile; 
var closeButton, holdLeft, holdRight, avaProfile; 

game.state.add('Boot', require('./states/boot.js')); 
game.state.add('Play', require('./states/play.js')); 
game.state.start('Boot'); 

Как сделать кнопку вызова функции?

ответ

0

Похоже, что он звонит closeProf на себя. Перед созданием кнопки добавьте переменную var that = this. Не добавляйте контекст, это означает, что вы вызываете this.this.closeProf.

Ваша кнопка код должен выглядеть следующим образом:

module.exports = { 

    init: function() { 
    var that = this; 
    closeButton = game.add.button(w/1.47, h/1.272, 'close', that.closeProf); 
    closeButton.fixedToCamera = true; 
    closeButton.inputEnabled = true; 
}, 

closeProf: function() { 
    alert('aaa') 
} 
}; 
Смежные вопросы