微信小程序

Scene

xr-frame / Exports / Scene

# Class: Scene

场景,系统核心之一。

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

# Hierarchy

  • Element

    Scene

# Table of contents

# Constructors

  • constructor

# Properties

  • dataMapping
  • defaultComponents
  • isScene
  • TYPE

# Accessors

  • animation
  • ar
  • assets
  • event
  • frameHeight
  • frameWidth
  • gizmo
  • height
  • id
  • inXML
  • name
  • parent
  • physics
  • ready
  • render
  • rootShadow
  • scene
  • share
  • timestamp
  • video
  • width

# Methods

  • addChild
  • addComponent
  • createEffect
  • createElement
  • createGeometry
  • createImage
  • createMaterial
  • createPostProcess
  • createRenderTexture
  • createTexture
  • createUniformBlock
  • createUniformBlockDesc
  • createVertexLayout
  • createVideoTexture
  • dfs
  • getChildAtIndex
  • getChildByClass
  • getChildByFilter
  • getChildByName
  • getChildrenByFilter
  • getChildrenByName
  • getComponent
  • getElementById
  • getNodeById
  • release
  • removeChild
  • removeComponent
  • setAttribute
  • setId

# 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中写在这个Elementposition直接映射到了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

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

# 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标签中的那些属性,值为字符串。 一般建议使用componentsetData方法!!!

# 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