我想在循环中使用一个函数,这是我的代码:
for (var i =a ; i < a+s; i++){
this.mat[i].color.setHex(0xffffff)
this.mat[b].color.setHex(0xffffff)
this.domEvents.addEventListener(this.cases[i], 'click', function(event){
this.tween = new TWEEN.Tween(pions.position)
.to({ x: cases[i].position.x, y: cases[i].position.y, z: 5}, 10000)
.start();
}, false)
this.domEvents.addEventListener(this.cases[b], 'click', function(event){
this.tween = new TWEEN.Tween(pions.position)
.to({ x: cases[b].position.x, y: cases[b].position.y, z: 5}, 10000)
.start();
}, false)
b--
}
我的问题是addEventListener
中case[i].position
的功能。我想使用i
中的this.cases[**i**]
,而不是循环中的i
。
答案 0 :(得分:0)
尝试改用函数来附加事件,如:
for (var i = a; i < a + s; i++) {
this.mat[i].color.setHex(0xffffff)
this.mat[b].color.setHex(0xffffff)
attachEvent(this, i);
attachEvent(this, b);
b--;
}
function attachEvent(_this, index) {
_this.domEvents.addEventListener(_this.cases[index], 'click', function(event) {
_this.tween = new TWEEN.Tween(pions.position)
.to({
x: cases[index].position.x,
y: cases[index].position.y,
z: 5
}, 10000)
.start();
}, false)
}