Timer + Aframe:如何将 setTimeOut 用于 Aframe.registercomponent("...")
Posted
技术标签:
【中文标题】Timer + Aframe:如何将 setTimeOut 用于 Aframe.registercomponent("...")【英文标题】:Timer + Aframe : How to use setTimeOut for Aframe.registercomponent("...") 【发布时间】:2019-04-12 09:39:18 【问题描述】:我知道这是一个初学者的问题,但我在使用 html / javascript 时遇到了一些麻烦。 我了解了 setTimeout(函数,时间),并且知道如何通过创建函数来使用它。 但是,我想知道是否可以将此 setTimeOut 用于 Aframe.registercomponent 我的其他脚本?我没有找到任何东西,我所有的尝试都失败了。
例如对于“音频分析仪波形”:
AFRAME.registerComponent('audioanalyser-waveform',
dependencies: ['audioanalyser'],
schema:
maxHeight: default: 0.2,
multiplier: default: .01,
radius: default: 1,
,
init: function ()
this.colors = [];
this.geometry;
this.levels = [];
this.noisePos = 0;
this.rings = [];
,
update: function ()
setTimeout(Color, 4000);
var data = this.data;
var el = this.el;
var i;
...
...
这个在我的 wave.js 脚本中 我知道我可以在 index.html 中使用标签调用它:
<a-entity id="analyser"
audioanalyser="src: #song"
audioanalyser-waveform="radius: 1"
rotation="210 0 0"
position="0 100 -150"
></a-entity>
如果我能补充一下,那就太简单了:
<script> setTimeout(audioanalyser-waveform, 4000); </script>
但它不是那样工作的,我不知道如何设置 Aframe.registercomponent 的开始/停止来选择它的播放秒数。
你能帮帮我吗...
脉冲星,
【问题讨论】:
【参考方案1】:你想完成什么?你能有一个在 4000 毫秒后设置 audioanalyser-waveform
的组件吗?
<a-entity id="analyser"
audioanalyser="src: #song"
rotation="210 0 0"
position="0 100 -150"
your-component
></a-entity>
组件代码:
AFRAME.registerComponent('your-component',
...
init: function ()
setTimeout(() =>
this.el.setAttribute('audioanalyser-waveform', radius: 1);
, 4000)
...
);
【讨论】:
我尝试创建一个“动画音乐视频”,我的视频必须与音乐相匹配。是的,它正在工作!谢谢!!嗯...是否可以在 8000 毫秒后停止我的组件例如?(谢谢) 使用setTimeout
可能不是与音乐同步的最佳方式,但您可以使用this.el.removeAttribute('audioanalyser-waveform')
或在您的组件中定义方法start / stop
,您可以调用:this.el.components['audioanalyser-waveform'].start()
对不起,昨天没看到你的回答。我很难编写这些方法启动/停止,这就是为什么我更喜欢 setTimeout 哈哈 :^) 非常感谢您的帮助,它正在工作!晚上好迭戈!以上是关于Timer + Aframe:如何将 setTimeOut 用于 Aframe.registercomponent("...")的主要内容,如果未能解决你的问题,请参考以下文章