为什么 HTML/DOM 没有在 A-Frame 中更新?
Why is the HTML/DOM not updating in A-Frame?
我正在对 A-Frame 中的实体执行 setAttribute
或 $.attr()
。例如,
el.setAttribute('position', '2 2 2');
位置更新,但我没有在 HTML/DOM 检查器中看到它更新。我刚刚设置了<a-entity position>
怎么会?
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
。
我正在对 A-Frame 中的实体执行 setAttribute
或 $.attr()
。例如,
el.setAttribute('position', '2 2 2');
位置更新,但我没有在 HTML/DOM 检查器中看到它更新。我刚刚设置了<a-entity position>
怎么会?
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
。