带参数的 Phaser 按钮处理函数
Phaser button handler function with parameter
我正在使用 Phaser.js 构建一个 html 游戏。这可能更像是一个一般的 javascript 问题,但我使用 Phaser 作为上下文,所以我尝试设置一个带有处理程序的按钮,这是 main.js:
中的按钮定义
var someParam = 2;
var btn = game.add.button(0, 0, 'playButton', actions.handler, this, 1, 0, 1);
在另一个名为 actions.js 的文件中,我定义了处理函数:
var handler = function(someParam) {
console.log(someParam);
};
module.exports = {
handler: handler
};
问题是如何将 someParam 传递给处理程序函数?
我不知道 Phaser,但在 JavaScript 你有两个可能的选择:
1)
game.add.button(0, 0, 'playButton', function(){
actions.handler(someParam);
}, this, 1, 0, 1);
2)
game.add.button(0, 0, 'playButton',actions.handler.bind(this,someParam) , this, 1, 0, 1);
选项 2 会将函数绑定到 someParam
的 特定 值,因此即使它发生变化,也不会在处理程序中发生变化。
我正在使用 Phaser.js 构建一个 html 游戏。这可能更像是一个一般的 javascript 问题,但我使用 Phaser 作为上下文,所以我尝试设置一个带有处理程序的按钮,这是 main.js:
中的按钮定义var someParam = 2;
var btn = game.add.button(0, 0, 'playButton', actions.handler, this, 1, 0, 1);
在另一个名为 actions.js 的文件中,我定义了处理函数:
var handler = function(someParam) {
console.log(someParam);
};
module.exports = {
handler: handler
};
问题是如何将 someParam 传递给处理程序函数?
我不知道 Phaser,但在 JavaScript 你有两个可能的选择:
1)
game.add.button(0, 0, 'playButton', function(){
actions.handler(someParam);
}, this, 1, 0, 1);
2)
game.add.button(0, 0, 'playButton',actions.handler.bind(this,someParam) , this, 1, 0, 1);
选项 2 会将函数绑定到 someParam
的 特定 值,因此即使它发生变化,也不会在处理程序中发生变化。