javascript - 移相器拖放多个文本项
问题描述
在游戏中我想添加可拖动的数字 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.input.enableDrag();
one.input.startDrag(game.input.activePointer);
one.events.onInputDown.add(this.clone, this, 0, one);
one.events.onDragStop.add(this.fixLocation);
count++;
});
这给了我错误:
Phaser.Signal:监听器是 add() 的必需参数,应该是一个函数。
这是fixlocation
功能
fixLocation: function(item){
if(rectangle.contains(item.x, item.y)){
itemAdded += 1;
} else{
item.destroy()
}
},
解决方案
我的错。Acutally在错误的上下文中的this
内部。foreach
它是循环的内部。我所要做的就是在循环之外调用函数。那是:
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++;
})
推荐阅读
- c# - 将 Grapevine (5.0.0-rc.7) 导入 NuGetForUnity 中未显示的 Unity 项目/NuGet 包
- python - 调整图像中对象的大小
- git - 致命:在 Azure Devops 中找不到 git 存储库(但可以转到 URL)?
- xcode - Xcode 分析器:sigprocmask 和 __sigaltstack 开销
- javascript - Kubernetes 集群下 POD 上的无效标记压缩接近堆限制分配失败和 v8::internal::Heap::AllocateRawWithRetryOrFailSlowPath
- javascript - 如何使用 MySQL 语法创建 knex 请求?
- javascript - Ajax 删除请求返回 200 但触发错误
- javascript - 有效地在 html 画布上渲染数百万个元素(并从服务器重新创建渲染)
- python - 如何从多索引中提取总年份行和列以在绘图中创建直方图
- c# - 如何在 Azure Functions 中使用 .ENV 文件或用户机密读取配置值