欧美日韩精品一区二区在线线,一级无码在线收看,精品国产高清91,久久精品欧美电影

# 場(chǎng)景

場(chǎng)景Scene是一種特殊的元素,對(duì)于所有的xr-frame小程序組件,其最外層必須有一個(gè)xr-scene標(biāo)簽作為根元素,并且組件內(nèi)只能有一個(gè),以此作為整個(gè)組件的基礎(chǔ)。

和一般僅用于組合的元素不同,場(chǎng)景有以下幾個(gè)特別之處:

  1. 其下掛載的組件都是名為系統(tǒng)System的特殊組件,來驅(qū)動(dòng)邏輯和渲染。
  2. 增加了一些方法,用于創(chuàng)建資源、查詢等等。
  3. 每個(gè)元素、組件、資源都是屬于當(dāng)前被包在的xr-scene標(biāo)簽對(duì)應(yīng)的元素中的。

在我們編寫組件時(shí),常常用到的那個(gè)this.scene,其實(shí)就是這個(gè)元素。

# 用途

一般我們需要用到的是場(chǎng)景的創(chuàng)建和查詢能力。

創(chuàng)建資源可以使用類似:

// 脫離于資源加載工作流,創(chuàng)建屬于這個(gè)場(chǎng)景的紋理資源
const texture = scene.createTexture(options);

// 直接創(chuàng)建一個(gè)元素,但注意要和`Shadow元素`一起使用
const el = scene.createElement(xrFrameSystem.XRNode);

的方式,更多的創(chuàng)建可見API文檔。

同樣在API文檔中我們還可以看到有一些查詢接口,比如上一節(jié)提到的scene.getElementById,以及scene.width這種獲取畫布信息的,scene.assets這種獲取系統(tǒng)實(shí)例引用的,開發(fā)者可以按需使用。

# 獲取場(chǎng)景實(shí)例

要使用場(chǎng)景需要先獲取實(shí)例,在組件、加載器等中,我們可以直接用this.scene獲取,而在用戶小程序腳本中,則需要通過事件:

<xr-scene bind:ready="handleReady">
......
</xr-scene>
// 小程序腳本中綁定的事件
handleReady({detail}) {
  const scene = detail.value;
}

# 事件

場(chǎng)景元素提供了以下事件:

事件 參數(shù) 立即 wxml 時(shí)機(jī)
ready 場(chǎng)景第一次解析完畢
tick 數(shù)字,delta(ms) 一幀驅(qū)動(dòng)開始
pause 場(chǎng)景暫停,一般是是壓后臺(tái)
resume 場(chǎng)景恢復(fù),一般是從后臺(tái)喚醒