Optionaloptions: INodeOptions是否启用渲染缓存,用于性能优化
适用于包含大量静态子节点的容器,启用后会将子节点渲染结果缓存, 减少重复渲染开销。注意:只有在子节点很少变化时才应启用
是否启用节点,控制节点的整体可用性
设为 false 时节点完全不可用,脚本不执行,与 visible 不同:
节点标签名称,用于标识和查找节点
通常用于 findChild({ label: 'name' }) 等查找操作, 不要求唯一性,可以有多个节点使用相同标签,查找时会返回第一个匹配的节点
是否启用指针事件处理,控制节点是否响应鼠标/触摸交互
默认为 false 以提高性能,添加指针事件监听器时会自动启用。 启用后节点会参与点击测试,当父节点也启用时会优先检测父节点。 禁用此属性可以让指针事件"穿透"到下层节点
是否启用子节点的指针事件处理,控制是否检测子节点的交互
即使当前节点 pointerEnabled=false,如果此属性为 true, 仍会检测子节点的指针事件并进行事件冒泡。这允许容器节点 不响应交互但其子节点可以响应交互
节点透明度,控制节点的不透明程度
范围为 0-1,其中 0 表示完全透明,1 表示完全不透明。 透明度会影响节点及其所有子节点,父节点的透明度会与子节点相乘。 设置为 0 的节点仍然可以接收指针事件。
节点锚点,以节点宽高的百分比表示的定位点
范围为 0-1,(0,0) 表示左上角,(0.5,0.5) 表示中心,(1,1) 表示右下角。 锚点决定了旋转和缩放的中心点,也影响节点的对齐方式。 设置锚点会自动重新计算 pivot 轴心点的像素坐标。
节点旋转角度,以角度为单位的旋转角度(0-360度)
这是 rotation 属性的角度版本,内部仍使用弧度存储。 正值为顺时针旋转,90度表示向右旋转90度。
子节点列表,只读属性,获取当前节点的所有直接子节点
此数组为只读,不应直接修改。要管理子节点,请使用 addChild、removeChild 等方法。 子节点在列表中的顺序决定了渲染顺序,索引越大的节点渲染在越上层。
是否已被销毁,销毁后不可再用
滤镜列表,只读属性,获取当前节点应用的所有滤镜效果
此数组为只读,不应直接修改。要管理滤镜,请使用 addFilter、removeFilter 等方法。 滤镜按照添加顺序依次应用,可以通过组合多个滤镜创建复杂的视觉效果。
节点高度,单位为像素
可以显式设置高度值,或自动从内容计算( -1 表示自动计算)。 设置高度会影响锚点的轴心点位置,并触发 resize 事件。 对于图片、文本等内容节点,通常由内容自动确定高度。
节点唯一标识符,用于在节点树中唯一标识节点
如果未手动设置,会自动生成唯一 ID。在场景编辑器中通常用于节点的查找和引用。
节点轴心点,旋转和缩放变换的中心点坐标,只读属性
轴心点是以像素为单位的绝对坐标,通常由 anchor 属性自动计算得出。 不建议直接修改,应该通过设置 anchor 属性来间接控制轴心点位置。
节点位置坐标,相对于父节点的本地坐标系
返回可观察的坐标点对象,可以直接修改 x、y 或使用 position.set(x, y)。
节点旋转弧度,以弧度为单位的旋转角度
正值为顺时针旋转,负值为逆时针旋转。旋转中心由 anchor 属性决定。 范围通常在 -Math.PI 到 Math.PI 之间,支持任意弧度值。
节点缩放比率,影响节点及其子节点的显示大小
返回可观察的缩放点对象,1.0 表示原始大小,0.5 表示缩小一半,2.0 表示放大一倍。 支持 x、y 轴独立缩放。缩放中心由 anchor 属性决定。
场景节点引用,提供场景级的管理功能
只有当节点被添加到场景节点的子树中时此属性才有值。 建议在频繁使用时缓存为局部变量以减少向上遍历的开销
脚本列表,获取或设置当前节点的所有脚本实例
脚本用于为节点添加行为逻辑和交互功能。设置新的脚本列表时, 会先销毁现有的所有脚本,然后添加新脚本。脚本按照添加顺序执行。
舞台节点引用,提供根级渲染和输入管理
只有当节点被添加到舞台的节点树中时此属性才有值。
节点叠加颜色,用于调整节点的整体色调
支持十六进制颜色值(如 0xff0000 表示红色)或颜色字符串。 叠加颜色会与节点原有颜色进行混合,白色(0xffffff)表示不改变原色。
节点变换对象,统一管理节点的位置、旋转、缩放等2D变换属性
通常不需要直接操作,而是通过 position、rotation、scale 等属性间接使用。
自定义数据存储,用于存储节点相关的任意附加信息
可以在此存储游戏逻辑相关的数据,如角色属性、状态信息等。 访问时会自动创建空对象,因此可以直接赋值使用。
节点可见性,控制节点是否参与渲染
只有当 visible=true 且 enabled=true 时节点才可见。 不可见的节点不会被渲染,但仍会执行脚本逻辑。 子节点的可见性受父节点影响。
节点宽度,单位为像素
可以显式设置宽度值,或自动从内容计算( -1 表示自动计算)。 设置宽度会影响锚点的轴心点位置,并触发 resize 事件。 对于图片、文本等内容节点,通常由内容自动确定宽度。
节点世界透明度,最终参与渲染的有效透明度,只读属性
这是考虑了所有父节点透明度影响后的最终透明度值。 等于当前节点透明度与所有父节点透明度的乘积。 此值由渲染系统自动计算,无法直接设置。
世界变换矩阵,表示节点相对于舞台根节点的最终变换
此矩阵是节点及其所有父节点变换的复合结果,用于世界坐标转换。 矩阵会在任何父节点或当前节点变换时自动重新计算。 用于渲染和坐标空间转换,通常不需要手动设置。
Protected_$set设置单个属性的内部实现,处理特殊属性类型的转换和绑定
内部方法,负责将单个属性正确设置到节点上,包含事件监听器的自动绑定逻辑。 以"on"开头的函数属性会被转换为事件监听器,事件名为去掉"on"前缀后首字母小写的形式。 只有节点确实存在的属性才会被设置,确保类型安全。
属性名称,支持普通属性和事件属性(on开头)
属性值,可以是任意类型,函数类型的on属性会被转换为事件监听器
Protected_custom为当前节点添加视觉滤镜效果
滤镜会改变节点的渲染效果,如模糊、发光、颜色调整等。 多个滤镜会按照添加顺序依次应用,可以组合创建复杂的视觉效果。
要添加的滤镜实例,如 BlurFilter、GlowFilter 等
返回当前节点实例,支持链式调用
为当前节点添加行为逻辑脚本
脚本用于为节点添加动态行为和交互逻辑,如移动、动画、AI等。 添加后脚本会自动绑定到当前节点,并立即开始执行其生命周期方法。 多个脚本按照添加顺序执行,可以组合实现复杂的行为。
要添加的脚本实例,如 MovementScript、AnimationScript 等
返回当前节点实例,支持链式调用
销毁此节点及所有子节点,销毁后此节点不可再用
节点被销毁时,所有子节点、脚本、滤镜以及在 node、root、scene、stage 和 stage.timer 上的监听都会被自动取消。
当前节点实例,支持链式调用
彻底销毁当前节点的所有子节点,释放所有相关资源
与 removeChildren 不同,这是"硬删除"操作,被销毁的子节点无法再使用。 销毁过程是递归的,会同时销毁所有后代节点、脚本、滤镜和事件监听。 适用于确定不再需要子节点的场景,能有效防止内存泄漏。
返回当前节点实例,支持链式调用
彻底销毁当前节点的所有滤镜,释放相关资源
这是一个"硬删除"操作,会彻底销毁所有滤镜实例并释放显存资源。 销毁后的滤镜无法再使用,适用于确定不再需要滤镜效果的场景。
返回当前节点实例,支持链式调用
彻底销毁当前节点的所有脚本,停止所有行为逻辑
这是一个"硬删除"操作,会彻底销毁所有脚本实例并清理相关资源。 销毁后的脚本无法再使用,节点将失去所有脚本提供的行为能力。
返回当前节点实例,支持链式调用
派发事件,触发指定类型的所有监听器
立即触发当前节点上注册的指定类型的所有事件监听器,按照注册顺序依次调用。 可以传递任意数量和类型的参数给监听器函数,这些参数会原样传递给每个监听器。 事件触发是同步的,所有监听器会在此方法返回前全部执行完毕。 某些鼠标事件类型支持向父节点冒泡,具体行为取决于事件系统的设计。
要触发的事件类型名称,不区分大小写
传递给监听器的参数列表,可以是任意数量的任意类型参数
返回当前节点实例,支持链式调用和方法串联
根据筛选条件查找滤镜实例,用于动态修改滤镜参数
在当前节点的滤镜列表中查找符合条件的滤镜,便于后续修改其属性。 查找优先级为:id > label > Class。找到第一个匹配的滤镜后立即返回。
筛选条件对象
OptionalClass?: typeof Filter滤镜的类构造函数,如 BlurFilter
Optionalid?: string滤镜的唯一标识符
Optionallabel?: string滤镜的标签名
返回匹配的第一个滤镜实例,未找到则返回 undefined
根据筛选条件查找脚本实例,用于动态控制脚本行为
在当前节点的脚本列表中查找符合条件的脚本,便于后续调用其方法或修改属性。 查找优先级为:id > label > Class。找到第一个匹配的脚本后立即返回。
返回匹配的第一个脚本实例,未找到则返回 undefined
从JSON数据反序列化节点,完整恢复节点的状态和结构
此方法用于从序列化的JSON数据中恢复节点,会设置节点的所有属性、创建子节点树、添加脚本和滤镜。
包含节点完整信息的数据对象,需要符合INodeData接口规范
返回当前节点实例,支持链式调用和方法串联
获取当前节点在父节点中的索引位置
返回在父节点中的索引,如果没有父节点则返回 -1
获取本地边界(相对于父节点)
计算节点在本地坐标系中的边界矩形,用于碰撞检测、点击测试和布局计算等。 如果节点设置了明确的宽高,则直接使用这些值;否则会根据节点内容计算边界。
返回本地边界对象
获取世界旋转边界,考虑了旋转角度的精确边界
与 getWorldBounds 不同,此方法返回的是考虑了旋转角度的精确边界矩形, 适用于需要精确碰撞检测或旋转对象交互的场景。
Optionalroot: LikoNode相对参考节点,为空则默认相对于舞台
返回考虑旋转的边界对象
获取节点在世界坐标系中的最终旋转角度
计算当前节点相对于世界坐标系或指定根节点的实际旋转角度,会累积所有父节点的旋转效果。 当节点有多层嵌套且各层都有旋转时,此方法返回的是所有旋转角度的累加结果。 常用于计算物体的实际朝向、旋转动画的相对计算、方向性碰撞检测等场景。
Optionalroot: LikoNode相对参考节点,指定计算的参考坐标系,传入null或undefined表示相对于舞台根节点
累积后的旋转角度值,单位为弧度,正值表示顺时针旋转
获取节点在世界坐标系中的最终缩放值
计算当前节点相对于世界坐标系或指定根节点的实际缩放值,会累积所有父节点的缩放效果。 当节点有多层嵌套且各层都有缩放时,此方法返回的是所有缩放的累积结果。 常用于需要获取物体真实大小、碰撞检测边界计算、UI元素定位等场景。
Optionalroot: LikoNode相对参考节点,指定计算的参考坐标系,传入null或undefined表示相对于舞台根节点
Optionalout: IPoint用于存储结果的Point对象,可复用现有对象避免创建新实例,不传则自动创建
包含x和y轴世界缩放值的Point对象,值为所有父节点缩放的累积乘积
检查是否存在指定类型的事件监听器
查询当前节点是否注册了指定类型的事件监听器,返回布尔值表示存在性。 此方法常用于条件判断,避免不必要的事件派发,提升性能。 只检查当前节点,不会检查父节点或子节点的监听器。
要检查的事件类型名称,不区分大小写
如果存在至少一个该类型的监听器返回true,否则返回false
重写命中测试方法 容器本身不参与点击检测,始终返回false让点击事件穿透到子节点
始终返回 false,表示容器本身不可点击
标记节点为脏状态,通知渲染系统该节点需要在下一帧更新
这是引擎的核心优化机制,避免每次属性变化都立即重新计算。 不同类型的变化会触发不同的更新流程,系统会自动处理脏状态的传播。 通常不需要手动调用,属性设置时会自动触发。
脏标记类型,指示具体哪种属性发生了变化
移除指定的事件监听器,精确匹配后删除
根据事件类型、监听器函数和调用者三个参数精确匹配,移除之前通过on或once注册的监听器。 三个参数必须与注册时完全相同才能成功移除,这确保了事件监听器的精确管理。 如果找不到匹配的监听器,调用此方法不会产生任何效果,也不会报错。 移除指针事件监听器不会自动禁用节点的指针交互功能。
事件类型名称,必须与注册时完全一致,不区分大小写
要移除的回调函数引用,必须是注册时的同一个函数对象
Optionalcaller: any回调函数的调用者,必须与注册时的caller相同
返回当前节点实例,支持链式调用和方法串联
批量移除事件监听器,按调用者过滤或全部清除
如果指定了caller参数,会移除该调用者注册的所有事件监听器,不论事件类型。 如果不指定caller参数,会清除当前节点上的所有事件监听器。 这是一个便捷的清理方法,特别适用于组件销毁、对象重置、内存清理等场景。 不会影响子节点或父节点的事件监听器。
Optionalcaller: unknown指定要清除的调用者对象,如果为空则清除所有监听器
返回当前节点实例,支持链式调用和方法串联
注册事件监听器,为节点添加事件响应能力
当指定类型的事件在节点上触发时,会调用提供的回调函数进行处理。 对于指针类型事件(click、pointerdown、pointermove等),会自动启用节点和父节点链的指针交互功能。 支持多个监听器监听同一事件,按注册顺序依次调用。事件支持从子节点向父节点的冒泡传播。 相同的事件类型、监听器函数和调用者组合只能注册一次,重复注册会覆盖之前的注册。
事件类型名称,如"click"、"pointerdown"、"added"等,不区分大小写
事件回调函数,接收事件对象和相关参数,函数内的this指向caller参数
Optionalcaller: any回调函数的执行上下文对象,决定函数内this的指向,通常传入当前对象实例
返回当前节点实例,支持链式调用和方法串联
注册一次性事件监听器,触发一次后自动销毁
功能与on方法相同,但监听器在第一次触发后会自动从事件系统中移除。 适用于只需要响应一次的事件场景,如初始化完成、资源加载完毕、一次性动画结束等。 同样支持指针事件的自动启用和父节点链的配置。如果事件从未触发,监听器会一直保留。 相同的事件类型、监听器函数和调用者组合只能注册一次。
事件类型名称,如"load"、"complete"、"ready"等,不区分大小写
事件回调函数,触发一次后会自动移除,函数内的this指向caller参数
Optionalcaller: any回调函数的执行上下文对象,决定函数内this的指向
返回当前节点实例,支持链式调用和方法串联
移除当前节点的所有子节点,但不销毁它们
这是一个批量移除操作,类似于多次调用 removeChild。 所有子节点都会被"软删除",可以重新添加到其他位置使用。 适用于需要清空容器但保留子节点的场景。
返回当前节点实例,支持链式调用
从当前节点移除指定的滤镜效果,但不销毁滤镜实例
移除后该滤镜效果会立即从节点上消失,但滤镜实例仍然存在, 可以重新添加到其他节点或同一节点上继续使用。
Optionalfilter: T要移除的滤镜实例,如果不存在则忽略
返回当前节点实例,支持链式调用
将当前节点从其父节点中移除,相当于"取消挂载"
这是一个安全的移除操作,即使当前节点没有父节点也不会出错。 移除后节点会脱离节点树,但可以重新添加到其他位置。 相当于调用 parent.removeChild(this)。
返回当前节点实例,支持链式调用
修改子节点在子节点列表中的索引位置,影响渲染层级
索引越大的子节点在渲染时越靠上层。通过调整索引可以改变节点的层级关系, 实现置顶、置底等效果。索引必须在有效范围内,否则会抛出错误。
要修改索引的子节点,必须是当前节点的直接子节点
新的索引位置,从 0 开始,必须小于子节点总数
返回当前节点实例,支持链式调用
根据数据配置重新设置节点的所有滤镜,完全替换现有滤镜效果
先销毁当前节点上的所有滤镜实例,然后根据提供的滤镜数据重新创建和配置滤镜。 每个滤镜数据会通过注册系统查找对应的滤镜类进行实例化,然后设置滤镜属性并应用到节点。 滤镜会按照数组顺序依次应用,创建复合的视觉效果。如果某个滤镜类未注册,会跳过该滤镜。 常用于视觉效果配置、场景氛围切换、动态效果应用等场景。
Optionalfilters: IFilterData[]滤镜配置数据数组,每个元素包含滤镜类型、参数和元数据信息
返回当前节点实例,支持链式调用和方法串联
批量设置节点属性,支持智能属性映射和事件绑定
遍历属性对象并逐一设置到当前节点上,支持所有公开的节点属性如position、scale、alpha等。 特殊处理以"on"开头的属性(如onClick、onPointerDown),会自动注册为对应的事件监听器。 对于不存在的属性会安全忽略,不会抛出错误,保证数据兼容性。 常用于节点初始化、JSON数据恢复、配置应用等场景。
Optionalprops: Record<string, unknown>属性键值对对象,键为属性名,值为要设置的属性值,支持嵌套对象和函数
返回当前节点实例,支持链式调用和方法串联
根据数据配置重新设置节点的所有脚本,完全替换现有脚本
先销毁当前节点上的所有脚本实例,然后根据提供的脚本数据重新创建和配置脚本。 每个脚本数据会通过注册系统查找对应的脚本类进行实例化,然后设置脚本属性并绑定到节点。 如果某个脚本类未注册或数据格式错误,会跳过该脚本而不影响其他脚本的创建。 常用于场景加载、节点模板应用、脚本配置动态更新等场景。
Optionalscripts: IScriptData[]脚本配置数据数组,每个元素包含脚本类型、属性和元数据信息
返回当前节点实例,支持链式调用和方法串联
通知渲染系统滤镜参数已发生变化,需要重新渲染
当动态修改滤镜的属性(如模糊半径、颜色值等)后,需要调用此方法 告知渲染系统重新计算滤镜效果。这是一个性能优化机制,避免每次 参数变化都立即重新渲染。
参数已变化的滤镜实例
返回当前节点实例,支持链式调用
容器节点类,用于包含和管理多个子节点
Container是一个特殊的节点类型,主要用于组织和管理其他节点的层次结构。 容器本身不具备视觉表现,主要作为其他节点的父容器存在。
Example
@注意事项