【发布时间】:2016-09-27 16:28:42
【问题描述】:
我正在对 A-Frame 中的实体执行 setAttribute 或 $.attr()。例如,
el.setAttribute('position', '2 2 2');
位置更新,但我没有在 HTML/DOM 检查器中看到它更新。我刚刚设置了<a-entity position>怎么办?
【问题讨论】:
标签: aframe
我正在对 A-Frame 中的实体执行 setAttribute 或 $.attr()。例如,
el.setAttribute('position', '2 2 2');
位置更新,但我没有在 HTML/DOM 检查器中看到它更新。我刚刚设置了<a-entity position>怎么办?
【问题讨论】:
标签: aframe
https://aframe.io/docs/0.3.0/components/debug.html
默认情况下,出于性能原因,A-Frame 不会使用组件数据更新 DOM。如果我们打开浏览器的 DOM 检查器,我们会看到很多实体只有组件名称可见:
<a-entity geometry material position rotation></a-entity>
组件数据在内部存储。更新 DOM 需要 CPU 时间来将内部存储的组件数据转换为字符串。但是,当我们想查看 DOM 更新以进行调试时,我们可以将调试组件附加到场景中。组件会在尝试序列化到 DOM 之前检查是否启用了调试组件。然后我们就可以在 DOM 中查看组件数据了:
<a-entity geometry="primitive: box" material="color: red" position="1 2 3" rotation="0 180 0"></a-entity>
按需手动序列化为 DOM:
<a-scene>.flushToDOM()
<a-entity>.flushToDOM()
如果您希望使用 Inspector 进行调试,请尝试使用 A-Frame Inspector。 https://aframe.io/docs/0.3.0/guides/using-the-aframe-inspector.html 。只需打开一个场景并按<ctrl> + <alt> + i。
【讨论】: