# Class: Scene
场景,系统核心之一。
Scene
是元素的一种,对应于xr-scene
标签。
作为整个xr-frame
组件的根节点,它提供了整个组件运作的一些基本能力,挂在了各大系统,驱动生命周期循环。
# Hierarchy
-
↳
Scene
# Table of contents
# Constructors
# Properties
# 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
# Properties
# dataMapping
• Readonly
dataMapping: Object
Element
的数据映射。它是为了给组件的属性提供一个方便的用法,比如:
{
position: [transform, position]
}
就是将xml
中写在这个Element
的position
直接映射到了transform
组件的position
属性上。
通常来讲,所有的驼峰如nodeId
都会被映射为小写加中划线node-id
。
# Index signature
▪ [key: string
]: string
[]
# Inherited from
# defaultComponents
• Readonly
defaultComponents: IEntityComponents
Element
的默认组件集合,详见IEntityComponents。
# Overrides
# isScene
• Readonly
isScene: boolean
= true
# TYPE
▪ Static
TYPE: string
= 'element'
# Inherited from
# Accessors
# animation
• get
animation(): AnimationSystem
动画系统。
# Returns
# ar
• get
ar(): ARSystem
AR系统。
# Returns
# assets
• get
assets(): AssetsSystem
资源系统。
# Returns
# event
• get
event(): EventManager
事件管理器。
# Returns
# frameHeight
• get
frameHeight(): number
显示分辨率高。
# Returns
number
# frameWidth
• get
frameWidth(): number
显示分辨率宽。
# Returns
number
# gizmo
• get
gizmo(): GizmoSystem
Gizmo系统。
# Returns
# 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
# physics
• get
physics(): PhysicsSystem
物理系统。
# Returns
# ready
• get
ready(): boolean
场景是否已经就绪。
# Returns
boolean
# render
• get
render(): RenderSystem
渲染系统。
# Returns
# rootShadow
• get
rootShadow(): XRShadow
一个可以用于快速挂载自己创建的Element
的shadow
节点。
# Returns
# scene
• get
scene(): this
自身。
# Returns
this
# share
• get
share(): ShareSystem
分享系统。
# Returns
# timestamp
• get
timestamp(): number
当前时间戳(ms)。
# Returns
number
# video
• get
video(): VideoSystem
视频系统。
# Returns
# width
• get
width(): number
渲染分辨率宽,一般物理点击事件之类的都是参考这个。
# Returns
number
# Methods
# addChild
▸ addChild(child
): void
手动添加一个子节点,注意需要保证当前节点是xr-shadow
或其子节点。
# Parameters
Name | Type |
---|---|
child | Element |
# Returns
void
# Inherited from
# 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
# createEffect
▸ createEffect(description
): Effect
手动创建一个Effect
资源。
# Parameters
Name | Type |
---|---|
description | IEffectAsset |
# Returns
# 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
# createImage
▸ createImage(autoRelease?
): IImage
手动创建一个Image
资源。
# Parameters
Name | Type | Default value | Description |
---|---|---|---|
autoRelease | boolean | true | 此图片在第一次时候后是否释放原始数据,默认释放。 |
# Returns
# createMaterial
▸ createMaterial(effect
, defaultUniforms?
): Material
手动创建一个Material
资源。
# Parameters
Name | Type |
---|---|
effect | Effect |
defaultUniforms? | Object |
# Returns
# createPostProcess
▸ createPostProcess(options
): PostProcess
手动创建一个PostProcess
资源。
# Parameters
Name | Type |
---|---|
options | IPostProcessOptions |
# Returns
# createRenderTexture
▸ createRenderTexture(options?
): RenderTexture
手动创建一个RenderTexture
资源。
# Parameters
Name | Type |
---|---|
options? | IRenderTextureOptions |
# Returns
# 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
# getChildAtIndex
▸ getChildAtIndex<T
>(index
): T
获取第index
个子元素。
# Type parameters
# Parameters
Name | Type |
---|---|
index | number |
# Returns
T
# Inherited from
# getChildByClass
▸ getChildByClass<T
>(clz
): T
通过元素的类获取子元素。
# Type parameters
# Parameters
Name | Type |
---|---|
clz | (...args : any []) => T |
# Returns
T
# Inherited from
# getChildByFilter
▸ getChildByFilter<T
>(filter
): T
通过filter
获取子元素。
# Type parameters
# Parameters
Name | Type |
---|---|
filter | (child : Element ) => boolean |
# Returns
T
# Inherited from
# getChildByName
▸ getChildByName<T
>(name
): T
通过元素的名字name
获取子元素。
# Type parameters
# Parameters
Name | Type |
---|---|
name | string |
# Returns
T
# Inherited from
# getChildrenByFilter
▸ getChildrenByFilter(filter
): Element
[]
通过filter
获取子元素列表。
# Parameters
Name | Type |
---|---|
filter | (child : Element ) => boolean |
# Returns
Element
[]
# Inherited from
# getChildrenByName
▸ getChildrenByName(name
): Element
[]
通过元素的名字name
获取子元素们。
# Parameters
Name | Type |
---|---|
name | string |
# Returns
Element
[]
# Inherited from
# getComponent
▸ getComponent<T
>(clzName
): T
获取一个Component
,可以使用类或者名字获取。
# Type parameters
Name | Type |
---|---|
T | extends Component <any , T > |
# Parameters
Name | Type |
---|---|
clzName | string |
# Returns
T
# Inherited from
▸ getComponent<T
>(clz
): T
# Type parameters
Name | Type |
---|---|
T | extends Component <any , T > |
# Parameters
Name | Type |
---|---|
clz | () => T |
# Returns
T
# Inherited from
# getElementById
▸ getElementById(id
): Element
通过在wxml
的元素上设置的id
索引一个元素,id
是唯一的。
# Parameters
Name | Type |
---|---|
id | string |
# Returns
# getNodeById
▸ getNodeById(nodeId
): Transform
通过在wxml
的元素上设置的node-id
索引一个Transform
组件,node-id
是唯一的。
# Parameters
Name | Type |
---|---|
nodeId | string |
# Returns
# release
▸ release(): void
仅限自己创建的节点使用,否则后果自负。
# Returns
void
# Inherited from
# removeChild
▸ removeChild(child
): void
手动移除一个子节点,注意需要保证当前节点是xr-shadow
或其子节点。
只调用removeChild没有办法走进子节点的onRelease里,需要手动调用子节点的release才行。
# Parameters
Name | Type |
---|---|
child | Element |
# Returns
void
# Inherited from
# removeComponent
▸ removeComponent(clz
): void
手动移除一个Component
,注意保证其不在xml
上。
# Parameters
Name | Type |
---|---|
clz | () => Component <any > |
# Returns
void
# Inherited from
# setAttribute
▸ setAttribute(name
, value
): void
设置一个属性,对应于xml
标签中的那些属性,值为字符串。
一般建议使用component
的setData
方法!!!
# Parameters
Name | Type |
---|---|
name | string |
value | string |
# Returns
void
# Inherited from
# setId
▸ setId(id
): void
仅限自己创建的节点使用,否则后果自负。
# Parameters
Name | Type |
---|---|
id | string |
# Returns
void