AFRAME:动态添加组件完成事件

时间:2018-06-28 03:13:20

标签: aframe

我的用例如下:

在一个循环中,正在创建实体并正在设置组件。这是通过传递给函数的json-object进行的。我的问题是,如何最好地使整个实体及其组件集被初始化。代码是这样的

var parent = document.querySelector('#parent');
var ent = document.createElement('a-entity');
parent.appendChild(ent);
for(var i =0; i = components.length; i++) {
   var arr = components[i];
   var cl = arr[0]; // class name
   var attr = arr[2]; // component name
   var attrV = arr[3]; // component data
   ent.setAttribute('class', cl);
   AFRAME.utils.entity.setComponentProperty(ent, attr, attrV);
   //ent.setAttribute(attr, attrV); tried with this too
}
console.log('loop completed')

已完成的循环会在某些组件的加载完成之前记录下来。我想打个电话,以了解所有组件都已完成加载。

似乎有一个事件componentinitialized,但它仅发送1个组件的返回值。我真正的要求(未在上面的代码中反映)是一个实体可以添加多个组件。

要使用以上内容,我可能必须为每个组件设置此事件,并跟踪它是否已完成。只是想知道是否有更优雅的方法。谢谢

1 个答案:

答案 0 :(得分:0)

实体发出“已加载”事件。比监听实体中的每个组件初始化都要容易。

尝试:

Public Function IsVisible(pt As Point) As Boolean
    Using p As New GraphicsPath
        p.AddEllipse(New Rectangle(Location, Size))
        Return p.IsVisible(pt)
    End Using
End Function

就像我一样here