如何在A-Frame中连续运行的场景中添加刻度,计时器,时钟或行为?

时间:2016-10-31 03:39:30

标签: aframe

我正在尝试写一个时钟或计时器。

function ttimer(){
  var options = {
    hour: 'numeric',
    minute: 'numeric',
    second: 'numeric'
  };
  var el_ttimer=document.querySelector('#a-ttimer');
  var d = new Date();
  el_ttimer.setAttribute('text', 'text: '+d.toLocaleString("ru", options)+'; font: Droid Sans Mono; size: .77;');
}
setInterval(ttimer, 1000);

<a-entity a-ttimer position="-12 0 -5" id="a-ttimer"></a-entity>

如何顺利更新文字?例如,计时器。

如何在场景中顺利创建新的图元?

你有最好的练习吗?

1 个答案:

答案 0 :(得分:2)

您可以编写一个具有tick处理程序的组件,该处理程序将挂钩到场景的渲染循环中。 https://aframe.io/docs/0.3.0/core/component.html#tick-time-timedelta

AFRAME.registerComponent('timertext', {
  tick: function (time, timeDelta) {
    // ...
    el_ttimer.setAttribute('text', 'text: '+ d.toLocaleString("ru", options) + '; font: Droid Sans Mono; size: .77;');
  }
});

<a-entity timertext text></a-entity>

如果要创建新基元,请使用AFRAME.registerPrimitivehttps://aframe.io/docs/0.3.0/primitives/#register-a-primitive

AFRAME.registerPrimitive('a-ttimer', {
  defaultComponents: {
    timertext: {},
    text: {}
  },

  mappings: {
    text: 'text.text'
  }
});

<a-ttimer text="0"></a-ttimer>