Aframe 如何在框架中动态地在.tick()处理程序中插入函数?
我想使用js删除框架中.tick处理程序中的一段代码 这就是我所拥有的:Aframe 如何在框架中动态地在.tick()处理程序中插入函数?,aframe,Aframe,我想使用js删除框架中.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: functi
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动态地添加或删除这段代码。或使用检查适当条件的if语句来检查您的逻辑:
tick: function() {
if (conditions) {
myObject.position.y += 0.009;
}
}
您可以在代码中的任何位置设置这些条件:组件本地或全局变量、组件属性…谢谢!我使用的条件语句如下:
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;
我认为您误解了模式和更新的要点,但是您的逻辑非常接近 我将把条件添加到模式中,以便您可以在组件中的任何位置使用它,也可以使用框架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(“条件”:“真”/“假”) 干得好!另一个想法是添加条件作为避免全局变量的一部分:
schema:{enabled:{default:false}
并且可以执行el.setAttribute('foo',{enabled:false})