除非尝试发出“ fly”事件侦听器,否则我将尝试停止踩踏功能。但是我无法从事件监听器中更改“ this.ballhit”变量。
我不知道如何在组件内的函数之间传递变量。
AFRAME.registerComponent('ballflyact', {
init: function () {
var el = this.el;
this.ballhit = '';
el.addEventListener('fly', function () {
this.ballhit = true;
});
},
tick: function (t, dt) {
if (!this.ballhit) { return; }
this.throttledFunction(); // Called once a second.
},
});
答案 0 :(得分:0)
创建函数时,this
变得不同。
您可以使用自动绑定功能el.addEventListener('fly', () => { // ... });
或者像var self = this; el.addEventListener('fly', function () { self.ballHit = true; });
答案 1 :(得分:0)
以下作品。谢谢。现在,油门功能将在“飞行”事件发生后仅运行约10,000毫秒,而不会一直在后台运行。
AFRAME.registerComponent('ballflyact', {
init: function () {
var el = this.el;
this.ballhit = '';
var self = this;
el.addEventListener('fly', function () {
self.ballhit = true;
// more code
setTimeout((e)=>{
self.ballhit = '';
}, 10000)
});
},
tick: function (t, dt) {
if (!this.ballhit) { return; }
this.throttledFunction(); // Called once a second.
},
});