Aframe 如何让组件等待所有元素';A型架中要加载的组件?
我已经阅读了有关初始化和使用组件的init的内容。我还知道您可以在组件中指定依赖项。但是如果我不知道哪些是依赖项,如果我希望最后加载一个组件,因为它依赖于其他元素的属性,该怎么办 例如,我目前正在开发一个可以处理多个网格名称的碰撞器。现在,我看到的对撞机(来自Dmarcos,Super Hands)我看到它们使用getObject3D(“网格”)读取它。我用threejs创建了一些自定义元素,并指定了不同的网格名称。我想读取由不同组件设置的所有网格,以便碰撞器工作 但为此,我需要等待所有组件的所有网格。有没有办法让我知道,当所有组件都加载到一个实体中时 我现在有几个解决方案:Aframe 如何让组件等待所有元素';A型架中要加载的组件?,aframe,Aframe,我已经阅读了有关初始化和使用组件的init的内容。我还知道您可以在组件中指定依赖项。但是如果我不知道哪些是依赖项,如果我希望最后加载一个组件,因为它依赖于其他元素的属性,该怎么办 例如,我目前正在开发一个可以处理多个网格名称的碰撞器。现在,我看到的对撞机(来自Dmarcos,Super Hands)我看到它们使用getObject3D(“网格”)读取它。我用threejs创建了一些自定义元素,并指定了不同的网格名称。我想读取由不同组件设置的所有网格,以便碰撞器工作 但为此,我需要等待所有组件的所
在实体的DOM属性上循环,检查属性名称是否为组件,如果它是未加载的组件,则等待它是否为带有
componentialized
事件的组件,如何
for (var i = 0; i < yourEntityEl.attributes.length; i++) {
if (yourEntityEl.attributes[i].key in AFRAME.components) {
// Wait for all to load (e.g., count them up and increment a counter or Promise.all).
}
}
for(var i=0;i
在实体的DOM属性上循环,检查属性名称是否为组件,如果它是未加载的组件,则等待它是否为带有组件初始化事件的组件,怎么样
for (var i = 0; i < yourEntityEl.attributes.length; i++) {
if (yourEntityEl.attributes[i].key in AFRAME.components) {
// Wait for all to load (e.g., count them up and increment a counter or Promise.all).
}
}
for(var i=0;i
另一个选项是,在第一次调用play()
方法时运行设置代码,而不是init()
。请注意,如果场景暂停且未暂停,则可能会再次调用play()
,因此可能会设置一个类似this.initialized=true
的标志,并进行检查,这样您就不会执行两次设置。另一个选项是,在第一次调用play()
方法时运行设置代码,而不是init()
。请注意,如果场景暂停且未暂停,则可能会再次调用play()
,因此可能会设置一个类似this.initialized=true
的标志,并进行检查,这样您就不会进行两次设置。我不得不说,数字4非常粗糙(window.setTimeout持续4秒),但它仍在工作。我对其他选择持开放态度。我不得不说,数字4是超级黑客(window.setTimeout为4秒),但它工作正常。我有其他选择。亲爱的,我还有一个问题。组件中是否有属性告诉我是否已初始化?因为如果我所依赖的组件已经初始化,那么eventListener('componentinitialized')可能永远不会被触发。el.components.foo.initialized
Awesome!!非常感谢!我知道这是旧的。我尝试使用.key,但返回未定义。使用.localName就可以了。亲爱的,我还有一个问题。组件中是否有属性告诉我是否已初始化?因为如果我所依赖的组件已经初始化,那么eventListener('componentinitialized')可能永远不会被触发。el.components.foo.initialized
Awesome!!非常感谢!我知道这是旧的。我尝试使用.key,但返回未定义。使用.localName就可以做到这一点。