我想使用js在AFRAME中的.tick处理程序内删除一段代码。
这就是我所拥有的:
AFRAME.registerComponent('foo', {
schema: {},
init: function () {},
update: function () {},
tick: function() {
myObject.position.y += 0.009;//this is what I want to remove on the fly
},
remove: function () {},
pause: function () {},
play: function () {}
});
我希望使用js即时触发添加或删除这段代码。
答案 0 :(得分:1)
使用if语句检查适当的条件来围绕逻辑:
tick: function() {
if (conditions) {
myObject.position.y += 0.009;
}
}
您可以在代码中的任何位置设置这些条件:组件局部或全局变量,组件属性...
答案 1 :(得分:0)
谢谢!我使用了这样的条件:
AFRAME.registerComponent('foo', {
schema: {},
init: function () {
condition = false;
},
update: function () {},
tick: function() {
if (condition == true) {
myObject.position.y += 0.009;//this is what I want to remove on the fly
}
},
remove: function () {},
pause: function () {},
play: function () {}
});
现在我可以通过以下方式触发状态:
condition = false;
答案 2 :(得分:0)
我认为您误解了架构和更新的要点,但是您确实与逻辑很接近。
我将条件添加到架构中,以便您可以在组件中的任何位置使用它,并使用AFrame sugar通过setAttribute对其进行更新。
AFRAME.registerComponent('foo', {
schema: {
condition: {type: boolean, default:false}
},
init: function () {
//possible once off initialization logic
},
update: function () {},
tick: function() {
if (this.data.codition) {
myObject.position.y += 0.009;//this is what I want to remove on the fly
}
},
remove: function () {},
pause: function () {},
play: function () {}
});
然后您就可以随时进行
yourElementWithFooComponent.setAttribute(“ condition”:“ true” /“ false”);