Class: Scene

查看 llm.txt

最后一次编辑于 2026-10-22

场景,系统核心之一。

Scene是元素的一种,对应于xr-scene标签。 作为整个xr-frame组件的根节点,它提供了整个组件运作的一些基本能力,挂在了各大系统,驱动生命周期循环。

Hierarchy

Table of contents

Constructors

Properties

Accessors

Methods

Constructors

constructor

• new Scene(_type, triggerEvent)

Parameters

Name Type
_type string
triggerEvent TFrameworkEventTrigger

Inherited from

Element.constructor

Properties

dataMapping

• Readonly dataMapping: Object

Element的数据映射。它是为了给组件的属性提供一个方便的用法,比如:

{
  position: [transform, position]
}

就是将xml中写在这个Element的position直接映射到了transform组件的position属性上。

通常来讲,所有的驼峰如nodeId都会被映射为小写加中划线node-id。

Index signature

▪ [key: string]: string[]

Inherited from

Element.dataMapping


defaultComponents

• Readonly defaultComponents: IEntityComponents

Element的默认组件集合,详见IEntityComponents。

Overrides

Element.defaultComponents


isScene

• Readonly isScene: boolean = true


TYPE

▪ Static TYPE: string = 'element'

Inherited from

Element.TYPE

Accessors

animation

• get animation(): AnimationSystem

动画系统。

Returns

AnimationSystem


ar

• get ar(): ARSystem

AR系统。

Returns

ARSystem


assets

• get assets(): AssetsSystem

资源系统。

Returns

AssetsSystem


event

• get event(): EventManager

事件管理器。

Returns

EventManager


frameHeight

• get frameHeight(): number

显示分辨率高。

Returns

number


frameWidth

• get frameWidth(): number

显示分辨率宽。

Returns

number


gizmo

• get gizmo(): GizmoSystem

Gizmo系统。

Returns

GizmoSystem


height

• get height(): number

渲染分辨率高,一般物理点击事件之类的都是参考这个。

Returns

number


id

• get id(): string

写在xml上的那个id,要求唯一。

Returns

string


inXML

• get inXML(): boolean

元素是否在xml中,若是xr-shadow下的节点,则为false。

Returns

boolean


name

• get name(): string

名字,写在xml上的那个name,不唯一。

Returns

string

• set name(value): void

名字,写在xml上的那个name,不唯一。

Parameters

Name Type
value string

Returns

void


parent

• get parent(): Element

父元素。

Returns

Element


physics

• get physics(): PhysicsSystem

物理系统。

Returns

PhysicsSystem


ready

• get ready(): boolean

场景是否已经就绪。

Returns

boolean


render

• get render(): RenderSystem

渲染系统。

Returns

RenderSystem


rootShadow

• get rootShadow(): XRShadow

一个可以用于快速挂载自己创建的Element的shadow节点。

Returns

XRShadow


scene

• get scene(): this

自身。

Returns

this


share

• get share(): ShareSystem

分享系统。

Returns

ShareSystem


timestamp

• get timestamp(): number

当前时间戳(ms)。

Returns

number


video

• get video(): VideoSystem

视频系统。

Returns

VideoSystem


width

• get width(): number

渲染分辨率宽,一般物理点击事件之类的都是参考这个。

Returns

number

Methods

addChild

▸ addChild(child): void

手动添加一个子节点,注意需要保证当前节点是xr-shadow或其子节点。

Parameters

Name Type
child Element

Returns

void

Inherited from

Element.addChild


addComponent

▸ addComponent<T>(clz, options?): T

手动添加一个Component。

Type parameters

Name Type
T extends Component<any, T>

Parameters

Name Type
clz () => T
options? T["__DATA_TYPE"]

Returns

T

Inherited from

Element.addComponent


createEffect

▸ createEffect(description): Effect

手动创建一个Effect资源。

Parameters

Name Type
description IEffectAsset

Returns

Effect


createElement

▸ createElement<T>(clz, attributes?): T

创建一个Element,但注意其只能作为xr-shadow的子孙节点,否则可能会出错!

Type parameters

Name Type
T extends Element<T>

Parameters

Name Type Description
clz (...args: any) => T -
attributes? Object 初始化的属性,同于xml中对应的标签属性。

Returns

T


createGeometry

▸ createGeometry(vertexLayout, vBuffer, iBuffer, indexType?): Geometry

手动创建一个Geometry资源。

Parameters

Name Type
vertexLayout default
vBuffer ArrayBufferView
iBuffer ArrayBufferView
indexType? EIndexType

Returns

Geometry


createImage

▸ createImage(autoRelease?): IImage

手动创建一个Image资源。

Parameters

Name Type Default value Description
autoRelease boolean true 此图片在第一次时候后是否释放原始数据,默认释放。

Returns

IImage


createMaterial

▸ createMaterial(effect, defaultUniforms?): Material

手动创建一个Material资源。

Parameters

Name Type
effect Effect
defaultUniforms? Object

Returns

Material


createPostProcess

▸ createPostProcess(options): PostProcess

手动创建一个PostProcess资源。

Parameters

Name Type
options IPostProcessOptions

Returns

PostProcess


createRenderTexture

▸ createRenderTexture(options?): RenderTexture

手动创建一个RenderTexture资源。

Parameters

Name Type
options? IRenderTextureOptions

Returns

RenderTexture


createTexture

▸ createTexture(options): default

手动创建一个Texture资源。

Parameters

Name Type
options ITextureOptions

Returns

default


createUniformBlock

▸ createUniformBlock(descriptor): default

手动创建一个UniformBlock资源。

Parameters

Name Type
descriptor default

Returns

default


createUniformBlockDesc

▸ createUniformBlockDesc(options): default

手动创建一个UniformBlockDescriptor资源。

Parameters

Name Type
options IUniformDescriptorOptions

Returns

default


createVertexLayout

▸ createVertexLayout(options): default

手动创建一个VertexLayout资源。

Parameters

Name Type
options IVertexLayoutOptions

Returns

default


createVideoTexture

▸ createVideoTexture(options?): Promise<VideoTexture>

手动创建一个VideoTexture资源。

Parameters

Name Type
options? IVideoTextureOptions

Returns

Promise<VideoTexture>


dfs

▸ dfs<T>(callback, defaultParams?, excludeRoot?, stop?): void

递归遍历元素的所有子孙节点。

Type parameters

Name Type
T extends unknown

Parameters

Name Type
callback (element: Element, params?: T) => T
defaultParams? T
excludeRoot? boolean
stop (element: Element, params?: T) => boolean

Returns

void

Inherited from

Element.dfs


getChildAtIndex

▸ getChildAtIndex<T>(index): T

获取第index个子元素。

Type parameters

Name Type
T extends Element<T> = Element

Parameters

Name Type
index number

Returns

T

Inherited from

Element.getChildAtIndex


getChildByClass

▸ getChildByClass<T>(clz): T

通过元素的类获取子元素。

Type parameters

Name Type
T extends Element<T> = Element

Parameters

Name Type
clz (...args: any[]) => T

Returns

T

Inherited from

Element.getChildByClass


getChildByFilter

▸ getChildByFilter<T>(filter): T

通过filter获取子元素。

Type parameters

Name Type
T extends Element<T> = Element

Parameters

Name Type
filter (child: Element) => boolean

Returns

T

Inherited from

Element.getChildByFilter


getChildByName

▸ getChildByName<T>(name): T

通过元素的名字name获取子元素。

Type parameters

Name Type
T extends Element<T> = Element

Parameters

Name Type
name string

Returns

T

Inherited from

Element.getChildByName


getChildrenByFilter

▸ getChildrenByFilter(filter): Element[]

通过filter获取子元素列表。

Parameters

Name Type
filter (child: Element) => boolean

Returns

Element[]

Inherited from

Element.getChildrenByFilter


getChildrenByName

▸ getChildrenByName(name): Element[]

通过元素的名字name获取子元素们。

Parameters

Name Type
name string

Returns

Element[]

Inherited from

Element.getChildrenByName


getComponent

▸ getComponent<T>(clzName): T

获取一个Component,可以使用类或者名字获取。

Type parameters

Name Type
T extends Component<any, T>

Parameters

Name Type
clzName string

Returns

T

Inherited from

Element.getComponent

▸ getComponent<T>(clz): T

Type parameters

Name Type
T extends Component<any, T>

Parameters

Name Type
clz () => T

Returns

T

Inherited from

Element.getComponent


getElementById

▸ getElementById(id): Element

通过在wxml的元素上设置的id索引一个元素,id是唯一的。

Parameters

Name Type
id string

Returns

Element


getNodeById

▸ getNodeById(nodeId): Transform

通过在wxml的元素上设置的node-id索引一个Transform组件,node-id是唯一的。

Parameters

Name Type
nodeId string

Returns

Transform


release

▸ release(): void

仅限自己创建的节点使用,否则后果自负。

Returns

void

Inherited from

Element.release


removeChild

▸ removeChild(child): void

手动移除一个子节点,注意需要保证当前节点是xr-shadow或其子节点。 只调用removeChild没有办法走进子节点的onRelease里,需要手动调用子节点的release才行。

Parameters

Name Type
child Element

Returns

void

Inherited from

Element.removeChild


removeComponent

▸ removeComponent(clz): void

手动移除一个Component,注意保证其不在xml上。

Parameters

Name Type
clz () => Component<any>

Returns

void

Inherited from

Element.removeComponent


setAttribute

▸ setAttribute(name, value): void

设置一个属性,对应于xml标签中的那些属性,值为字符串。 一般建议使用component的setData方法!!!

Parameters

Name Type
name string
value string

Returns

void

Inherited from

Element.setAttribute


setId

▸ setId(id): void

仅限自己创建的节点使用,否则后果自负。

Parameters

Name Type
id string

Returns

void

Inherited from

Element.setId