xr-frame / Exports / XRShadow

# Class: XRShadow

标签为xr-shadow。 是一种特殊的节点,开发者仅可在其下以及子孙挂载自己创建的节点

默认组件见ShadowDefaultComponents,属性映射见ShadowDataMapping

# Hierarchy

# Table of contents

# Constructors

# Properties

# Accessors

# Methods

# Constructors

# constructor

new XRShadow(_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[]

# Overrides

Element.dataMapping


# defaultComponents

Readonly defaultComponents: IEntityComponents

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

# Overrides

Element.defaultComponents


# TYPE

Static TYPE: string = 'element'

# Inherited from

Element.TYPE

# Accessors

# event

get event(): EventManager

事件管理器。

# Returns

EventManager


# 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


# scene

get scene(): Scene

场景实例。

# Returns

Scene

# 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


# 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


# 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