Javascript 在多个文本项上拖放相位器
在游戏中,我想添加可拖动的数字1-9,在拖放事件中,我想调用一些函数。但循环中的事件不起作用。任何解决方案都很好 代码如下:Javascript 在多个文本项上拖放相位器,javascript,phaser-framework,Javascript,Phaser Framework,在游戏中,我想添加可拖动的数字1-9,在拖放事件中,我想调用一些函数。但循环中的事件不起作用。任何解决方案都很好 代码如下: var count = 0; points.forEach(function(item){ var one = game.add.text(item.centerX, item.centerY, count, this.style); one.anchor.setTo(0.5) one.inputEnabled = true; one.in
var count = 0;
points.forEach(function(item){
var one = game.add.text(item.centerX, item.centerY, count, this.style);
one.anchor.setTo(0.5)
one.inputEnabled = true;
one.input.enableDrag();
one.input.startDrag(game.input.activePointer);
one.events.onInputDown.add(this.clone, this, 0, one);
one.events.onDragStop.add(this.fixLocation);
count++;
});
这给了我一个错误:
Signal:listener是add()的必需参数,应该是函数
这是fixlocation
功能
fixLocation: function(item){
if(rectangle.contains(item.x, item.y)){
itemAdded += 1;
} else{
item.destroy()
}
},
是我的错。在错误的上下文中,将
foreach
中的this
准确地记录下来。它是循环的内部。我所要做的就是调用循环外的函数。即:
var count = 0;
var me = this;// get this here
points.forEach(function(item){
var one = game.add.text(item.centerX, item.centerY, count, this.style);
one.anchor.setTo(0.5)
one.inputEnabled = true;
one.input.enableDrag();
one.input.startDrag(game.input.activePointer);
one.events.onInputDown.add(me.clone, this, 0, one); // now call the function
one.events.onDragStop.add(me.fixLocation);
count++;
})
您能否确认
clone
和fixLocation
是功能?错误表明其中一个不是我定义的那些函数。当我在循环外使用相同的逻辑时,它工作正常