# Class: XRShadow
标签为xr-shadow
。
是一种特殊的节点,开发者仅可在其下以及子孙挂载自己创建的节点!
默认组件见ShadowDefaultComponents,属性映射见ShadowDataMapping。
# Hierarchy
# Table of contents
# Constructors
# Properties
# Accessors
# Methods
- addChild
- addComponent
- dfs
- getChildAtIndex
- getChildByClass
- getChildByFilter
- getChildByName
- getChildrenByFilter
- getChildrenByName
- getComponent
- release
- removeChild
- removeComponent
- setAttribute
- setId
# Constructors
# constructor
• new XRShadow(_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
[]
# Overrides
# defaultComponents
• Readonly
defaultComponents: IEntityComponents
Element
的默认组件集合,详见IEntityComponents。
# Overrides
# TYPE
▪ Static
TYPE: string
= 'element'
# Inherited from
# Accessors
# event
• get
event(): EventManager
事件管理器。
# Returns
# 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
# scene
• get
scene(): Scene
场景实例。
# Returns
# 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
# 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
# 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