實體多屬性元件資料(setAttribute)
更新多屬性元件資料
要更新多屬性元件的元件資料,我們可以將已註冊元件的名稱作為 componentName 傳遞,並將屬性物件作為值傳遞。字串也是可以接受的(例如,型別:點;距離:30 ),但是物件將在解析時儲存 A-Frame 的一些工作:
// Only the properties passed in the object will be overwritten.
entity.setAttribute('light', {
type: 'spot',
distance: 30,
intensity: 2.0
});
或者,要更新多屬性元件的各個屬性,我們可以將已註冊元件的名稱作為 componentName 傳遞,將屬性名稱作為第二個引數傳遞,將屬性值作為第三個引數傳遞:
// All previous properties for the material component (besides the color) will be unaffected.
entity.setAttribute('material', 'color', 'crimson');
請注意,陣列屬性型別的行為是唯一的:
- 陣列是可變的。它們通過引用分配,因此元件可以看到對陣列的更改。
- 對陣列型別屬性的更新不會觸發元件的更新方法,也不會發出事件。
更新多屬性元件資料
如果將 true 作為第三個引數傳遞給 .setAttribute ,則將重置未命名的屬性並使用 clobbered:
// All previous properties for the light component will be removed and overwritten.
entity.setAttribute('light', {
type: 'spot',
distance: 30,
intensity: 2.0
}, true);