liko
    Preparing search index...

    Class Container

    容器节点类,用于包含和管理多个子节点

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    cacheEnabled: boolean = false

    是否缓存为静态渲染,对有大量不变子节点的容器可提升渲染效率

    enabled: boolean = true

    是否启用节点,设为 false 时节点不可用且脚本不执行,而 visible 只影响显示

    label: string = ''

    节点标签名称,用于快速查找和识别节点

    pointerEnabled: boolean = false

    是否支持鼠标事件,默认不支持,添加鼠标事件监听后会自动启用 当父节点 pointerEnabled=true 时,会优先判断父节点命中后再判定子节点,以提高性能

    pointerEnabledForChildren: boolean = false

    是否支持子节点鼠标事件判定,添加鼠标事件监听后会自动启用 当节点 pointerEnabled=false 但 pointerEnabledForChildren=true 时,仍会尝试命中子节点并冒泡

    Accessors

    • get alpha(): number

      节点透明度,范围 0-1,0 表示完全透明

      Returns number

    • set alpha(value: number): void

      Parameters

      • value: number

      Returns void

    • get angle(): number

      节点旋转角度,底层仍使用 rotation(弧度)存储

      Returns number

    • set angle(value: number): void

      Parameters

      • value: number

      Returns void

    • get children(): LikoNode[]

      子节点列表,可直接读取但不应直接修改此数组

      Returns LikoNode[]

    • get destroyed(): boolean

      是否已被销毁,销毁后不可再用

      Returns boolean

    • get filters(): Filter[]

      滤镜列表,可直接读取但不应直接修改此数组

      Returns Filter[]

    • get height(): number

      节点高度,单位为像素

      Returns number

    • set height(value: number): void

      Parameters

      • value: number

      Returns void

    • get id(): string

      节点 id,作为节点的唯一标识符

      Returns string

    • set id(value: string): void

      Parameters

      • value: string

      Returns void

    • get parent(): undefined | LikoNode

      父节点引用,只有被添加到父节点内此属性才有值

      Returns undefined | LikoNode

    • set parent(value: undefined | LikoNode): void

      Parameters

      Returns void

    • get pivot(): IPoint

      节点轴心点,影响节点旋转和缩放的中心点(只读)

      Returns IPoint

    • get rotation(): number

      节点旋转弧度,以弧度为单位

      Returns number

    • set rotation(value: number): void

      Parameters

      • value: number

      Returns void

    • get scene(): undefined | IScene

      场景节点引用,只有被添加到场景后此属性才有值(建议缓存为局部变量以减少遍历开销)

      Returns undefined | IScene

    • get stage(): undefined | Stage

      舞台节点引用,只有被添加到舞台后此属性才有值

      Returns undefined | Stage

    • get tintColor(): ColorData

      节点叠加颜色,用于调整节点的颜色

      Returns ColorData

    • set tintColor(value: ColorData): void

      Parameters

      • value: ColorData

      Returns void

    • get transform(): Transform

      节点变换对象,管理位置、旋转、缩放等变换属性

      Returns Transform

    • get userData(): Record<string, any>

      自定义数据,用于存储额外信息,如 node.userData.speed = 1

      Returns Record<string, any>

    • set userData(value: Record<string, any>): void

      Parameters

      • value: Record<string, any>

      Returns void

    • get visible(): boolean

      是否可见,不可见时不会被渲染

      Returns boolean

    • set visible(value: boolean): void

      Parameters

      • value: boolean

      Returns void

    • get width(): number

      节点宽度,单位为像素

      Returns number

    • set width(value: number): void

      Parameters

      • value: number

      Returns void

    • get worldAlpha(): number

      节点世界透明度,考虑了父节点透明度的最终透明度

      Returns number

    • get worldMatrix(): Matrix

      世界矩阵,相对于舞台的变换矩阵

      Returns Matrix

    Methods

    • 添加子节点到当前节点

      如果子节点已有父节点,会先从原父节点中移除。添加后子节点会继承当前节点的舞台引用, 并触发 added 事件。如果指定了索引,子节点会被插入到指定位置。

      Type Parameters

      Parameters

      • child: T

        要添加的子节点

      • Optionalindex: number

        指定添加的索引位置(可选)

      Returns this

      当前节点实例,支持链式调用

    • 添加滤镜到当前节点

      将指定的滤镜实例添加到当前节点,使节点在渲染时应用该滤镜效果。

      Type Parameters

      • T extends Filter

      Parameters

      • filter: T

        要添加的滤镜实例

      Returns this

      当前节点实例,支持链式调用

    • 添加脚本到当前节点

      将指定的脚本实例添加到当前节点,并设置脚本的目标节点为当前节点。 添加后脚本会自动执行其生命周期方法(onCreate 等)。

      Type Parameters

      Parameters

      • script: T

        要添加的脚本实例

      Returns this

      当前节点实例,支持链式调用

    • 销毁此节点及所有子节点,销毁后此节点不可再用

      节点被销毁时,所有子节点、脚本、滤镜以及在 node、root、scene、stage 和 stage.timer 上的监听都会被自动取消。

      Returns void

      当前节点实例,支持链式调用

    • 销毁当前节点的所有子节点

      与 removeChildren 不同,此方法会彻底销毁子节点,销毁后子节点不可再用。 销毁过程会递归处理所有子节点,清理所有资源和事件监听。

      Returns this

      当前节点实例,支持链式调用

    • 销毁当前节点的所有滤镜

      彻底销毁当前节点的所有滤镜实例,销毁后滤镜不可再用。

      Returns this

      当前节点实例,支持链式调用

    • 销毁当前节点的所有脚本 销毁后脚本不可再用

      Returns this

      当前节点实例,支持链式调用

    • 派发事件

      触发指定类型的事件,并将参数传递给所有注册的监听器。 事件会按照注册顺序依次调用监听器,并支持传递任意数量的参数。 事件会在当前节点触发,并根据事件类型可能会向上冒泡到父节点。

      Parameters

      • type: string

        事件类型,不区分大小写

      • ...args: any[]

        传递给监听器的参数,支持多个参数

      Returns this

      当前节点实例,支持链式调用

    • 根据筛选条件查找子节点

      在当前节点的子节点中查找符合指定条件的节点,支持按 ID、标签或类型查找。 可以选择是否递归查找所有后代节点。

      Type Parameters

      Parameters

      • options: { Class?: typeof LikoNode; deep?: boolean; id?: string; label?: string }

        筛选条件,可包含 id、label、Class 和 deep 选项

      Returns undefined | T

      返回匹配的子节点,如果未找到则返回 undefined

    • 根据筛选条件查找滤镜实例

      在当前节点的滤镜列表中查找符合指定条件的滤镜实例。 支持按 ID、标签或类型查找。

      Type Parameters

      • T extends Filter

      Parameters

      • options: { Class?: typeof Filter; id?: string; label?: string }

        筛选条件,可包含 id、label 和 Class 选项

      Returns undefined | T

      返回匹配的滤镜实例,如果未找到则返回 undefined

    • 根据筛选条件查找脚本实例

      在当前节点的脚本列表中查找符合指定条件的脚本实例。 支持按 ID、标签或类型查找。

      Type Parameters

      Parameters

      • options: { Class?: typeof ScriptBase; id?: string; label?: string }

        筛选条件,可包含 id、label 和 Class 选项

      Returns undefined | T

      返回匹配的脚本实例,如果未找到则返回 undefined

    • 获取当前节点在父节点中的索引位置

      Returns number

      返回在父节点中的索引,如果没有父节点则返回 -1

    • 获取本地边界(相对于父节点)

      计算节点在本地坐标系中的边界矩形,用于碰撞检测、点击测试和布局计算等。 如果节点设置了明确的宽高,则直接使用这些值;否则会根据节点内容计算边界。

      Returns Bounds

      返回本地边界对象

      返回值在节点级别复用,如需延迟使用应调用 clone 方法。 当节点的尺寸或子节点发生变化时,会重新计算边界。 子类可以通过重写 _customLocalBounds 方法来自定义边界计算逻辑。

    • 获取世界边界,相对于指定根节点

      计算节点在世界坐标系(或指定根节点坐标系)中的边界矩形,考虑了所有父节点的变换。 此方法常用于可见性检测、相机裁剪和全局碰撞检测等场景。

      Parameters

      • Optionalroot: LikoNode

        相对参考节点,为空则默认相对于舞台

      Returns Bounds

      返回相对于世界或指定节点的边界对象

      返回值在节点级别复用,如需延迟使用应调用 clone 方法。 此方法会考虑节点的位置、缩放和旋转等变换因素。 与 getWorldRotatingRect 不同,此方法返回的是轴对齐的边界矩形,不考虑旋转角度。

    • 获取世界旋转边界,考虑了旋转角度的精确边界

      与 getWorldBounds 不同,此方法返回的是考虑了旋转角度的精确边界矩形, 适用于需要精确碰撞检测或旋转对象交互的场景。

      Parameters

      • Optionalroot: LikoNode

        相对参考节点,为空则默认相对于舞台

      Returns RotatingRect

      返回考虑旋转的边界对象

      返回值在节点级别复用,如需延迟使用应调用 clone 方法。

    • 获取世界旋转值(考虑所有父节点的旋转)

      Parameters

      • Optionalroot: LikoNode

        相对参考节点,为空则默认相对于舞台

      Returns number

      返回世界旋转值,单位为弧度

    • 检查是否存在指定类型的事件监听器

      判断当前节点是否注册了指定类型的事件监听器,用于条件判断和性能优化。

      Parameters

      • type: string

        事件类型,不区分大小写

      Returns boolean

      如果存在监听器则返回 true,否则返回 false

    • 将本地坐标转换为世界坐标

      将节点本地坐标系中的点转换为世界坐标系(或指定根节点坐标系)中的点。 此方法在处理交互、碰撞检测和跨节点操作时非常有用。

      Type Parameters

      Parameters

      • position: IPoint

        相对于当前节点的本地坐标

      • Optionalout: P

        输出结果的对象(可选,不提供则创建新对象)

      • Optionalroot: LikoNode

        相对参考节点,为空则默认相对于舞台

      Returns P

      返回转换后的世界坐标

      转换过程会考虑节点及其所有父节点的位置、缩放和旋转。 如果指定了 root 参数,则结果将相对于该节点的坐标系。

    • 移除事件监听器

      移除之前通过 on 或 once 方法注册的事件监听器。需要提供完全相同的参数才能成功移除。

      Parameters

      • type: string

        事件类型,不区分大小写

      • listener: (...args: any[]) => void

        要移除的回调函数

      • Optionalcaller: any

        回调函数的调用者

      Returns this

      当前节点实例,支持链式调用

    • 移除特定调用者的所有事件监听器

      一次性移除特定调用者注册的所有事件监听器,或在不指定调用者时移除所有监听器。 这在组件销毁或重置时特别有用。

      Parameters

      • Optionalcaller: unknown

        调用者对象,如果为空则移除所有事件监听器

      Returns this

      当前节点实例,支持链式调用

    • 注册事件监听器

      为节点添加事件监听器,当指定类型的事件触发时,会调用提供的回调函数。 如果注册的是指针事件(如 click、pointerdown 等),会自动启用节点的指针交互功能。

      Parameters

      • type: string

        事件类型,不区分大小写

      • listener: (...args: any[]) => void

        事件触发时的回调函数

      • Optionalcaller: any

        回调函数的调用者,通常为 this

      Returns this

      当前节点实例,支持链式调用

      对同一事件类型、监听器和调用者,多次注册只会生效最后一次。 事件系统支持冒泡机制,子节点触发的事件会向上传递到父节点。

    • 注册一次性事件监听器,事件触发一次后自动移除

      与 on 方法类似,但监听器只会被触发一次,之后会自动移除。 这对于只需要响应一次的事件(如初始化完成、资源加载等)非常有用。

      Parameters

      • type: string

        事件类型,不区分大小写

      • listener: (...args: any[]) => void

        事件触发时的回调函数

      • Optionalcaller: any

        回调函数的调用者,通常为 this

      Returns this

      当前节点实例,支持链式调用

      对同一事件类型、监听器和调用者,多次注册只会生效最后一次。 如果注册的是指针事件,会自动启用节点的指针交互功能。

    • 从当前节点中删除指定的子节点

      将指定的子节点从当前节点的子节点列表中移除,但不会销毁该子节点。 移除后,子节点的 parent 和 stage 引用会被清除,并触发 removed 事件。

      Type Parameters

      Parameters

      • Optionalchild: T

        要删除的子节点

      Returns this

      当前节点实例,支持链式调用

    • 删除当前节点的所有子节点

      将所有子节点从当前节点的子节点列表中移除,但不会销毁这些子节点。 子节点会被从节点树中移除,可以被重新添加到其他节点中。 所有被移除的子节点会触发 removed 事件。

      Returns this

      当前节点实例,支持链式调用

    • 从当前节点移除指定的滤镜

      将指定的滤镜实例从当前节点的滤镜列表中移除,但不会销毁该滤镜。

      Type Parameters

      • T extends Filter

      Parameters

      • Optionalfilter: T

        要移除的滤镜实例

      Returns this

      当前节点实例,支持链式调用

    • 将当前节点从其父节点中移除

      从父节点的子节点列表中移除当前节点,但不会销毁当前节点。 即使没有被添加到父节点,调用此方法也不会报错。

      Returns this

      当前节点实例,支持链式调用

    • 修改子节点在子节点列表中的索引位置

      Parameters

      • child: LikoNode

        要修改索引的子节点

      • index: number

        新的索引位置

      Returns this

      当前节点实例,支持链式调用

      如果索引超出范围则抛出错误

    • 通过滤镜数据列表重置节点的滤镜

      会先清除现有滤镜,然后根据数据创建新滤镜。 此方法通常用于从序列化数据恢复节点的滤镜效果。

      Parameters

      Returns this

      当前节点实例,支持链式调用

      滤镜创建过程会使用注册系统查找对应的滤镜类,并实例化。 创建后会自动设置滤镜的属性,并将滤镜添加到节点。

    • 根据 JSON 数据设置节点属性

      批量设置节点的属性值,支持设置任何节点的公开属性。 特别地,对于以 "on" 开头的属性(如 onClick),会自动注册为事件监听器。

      Parameters

      • Optionalprops: Record<string, unknown>

        属性数据对象,键为属性名,值为属性值

      Returns this

      返回当前节点实例,支持链式调用

      此方法通常用于从序列化数据恢复节点状态,或在创建节点时批量设置属性。 对于不存在的属性,会被忽略而不会报错。

    • 通过脚本数据列表重置节点的脚本

      会先清除现有脚本,然后根据数据创建新脚本。 此方法通常用于从序列化数据恢复节点的脚本状态。

      Parameters

      Returns this

      当前节点实例,支持链式调用

      脚本创建过程会使用注册系统查找对应的脚本类,并实例化。 创建后会自动设置脚本的属性,并将脚本添加到节点。

    • 更新滤镜状态,当滤镜参数变化时调用

      当滤镜的参数发生变化时,应调用此方法以确保变化生效。

      Type Parameters

      • T extends Filter

      Parameters

      • filter: T

        要更新的滤镜实例

      Returns this

      当前节点实例,支持链式调用

    • 将世界坐标转换为本地坐标

      将世界坐标系(或指定根节点坐标系)中的点转换为节点本地坐标系中的点。 此方法常用于处理输入事件、拖放操作和相对定位等场景。

      Type Parameters

      Parameters

      • position: IPoint

        世界坐标位置

      • Optionalout: P

        输出结果的对象(可选,不提供则创建新对象)

      • Optionalroot: LikoNode

        相对参考节点,为空则默认相对于舞台

      Returns P

      返回转换后的本地坐标

      转换过程会考虑节点及其所有父节点的位置、缩放和旋转的逆变换。 如果指定了 root 参数,则输入坐标将被视为相对于该节点的坐标。 此方法是 localToWorld 的逆操作。