liko
    Preparing search index...

    Class AnimatedSprite

    精灵动画类,用于播放序列帧动画

    该类支持两种方式创建动画:

    1. 通过 URL 加载动画资源(推荐)
    2. 直接设置纹理集合

    主要功能:

    • 自动循环播放序列帧动画
    • 支持自定义帧率控制
    • 提供播放、停止、跳转等控制方法
    • 支持动画事件监听(播放、停止、加载完成、播放结束)

    使用示例:

    // 方式一:通过 URL 加载
    const sprite = new AnimatedSprite({
    url: 'assets/character.atlas',
    frameRate: 10,
    onLoaded: () => console.log('动画加载完成'),
    onPlayed: () => console.log('动画开始播放'),
    onEnded: () => console.log('动画播放结束一轮')
    });

    // 方式二:直接设置纹理
    const sprite = new AnimatedSprite({
    textures: [texture1, texture2, texture3],
    frameRate: 10
    });

    // 添加到舞台并播放
    stage.addChild(sprite);
    sprite.play();

    // 控制动画
    sprite.stop(); // 停止播放
    sprite.gotoTime(1.5); // 跳转到 1.5 秒位置
    sprite.currentFrame = 10; // 跳转到第 10 帧

    注意事项:

    • 必须先将精灵添加到舞台(stage)才能调用 play() 方法
    • 动画会自动循环播放,播放到最后一帧时会触发 ended 事件并重新开始
    • 所有控制方法都支持链式调用
    • 销毁时会自动停止播放并清理资源

    Hierarchy (View Summary)

    Implements

    • IRenderable
    • IAnimation
    Index

    Constructors

    Properties

    cacheEnabled: boolean = false

    是否启用渲染缓存,用于性能优化

    适用于包含大量静态子节点的容器,启用后会将子节点渲染结果缓存, 减少重复渲染开销。注意:只有在子节点很少变化时才应启用

    enabled: boolean = true

    是否启用节点,控制节点的整体可用性

    设为 false 时节点完全不可用,脚本不执行,与 visible 不同:

    • enabled=false:节点逻辑和渲染都停止
    • visible=false:仅停止渲染,逻辑仍然执行
    frameRate: number = 20

    动画的播放帧率,默认为 20 帧/秒。修改此值会影响动画播放速度

    isPlaying: boolean = false

    标识动画是否正在播放

    label: string = ''

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

    通常用于 findChild({ label: 'name' }) 等查找操作, 不要求唯一性,可以有多个节点使用相同标签,查找时会返回第一个匹配的节点

    pointerEnabled: boolean = false

    是否启用指针事件处理,控制节点是否响应鼠标/触摸交互

    默认为 false 以提高性能,添加指针事件监听器时会自动启用。 启用后节点会参与点击测试,当父节点也启用时会优先检测父节点。 禁用此属性可以让指针事件"穿透"到下层节点

    pointerEnabledForChildren: boolean = false

    是否启用子节点的指针事件处理,控制是否检测子节点的交互

    即使当前节点 pointerEnabled=false,如果此属性为 true, 仍会检测子节点的指针事件并进行事件冒泡。这允许容器节点 不响应交互但其子节点可以响应交互

    renderObject: SpriteObject = ...

    Accessors

    • get alpha(): number

      节点透明度,控制节点的不透明程度

      范围为 0-1,其中 0 表示完全透明,1 表示完全不透明。 透明度会影响节点及其所有子节点,父节点的透明度会与子节点相乘。 设置为 0 的节点仍然可以接收指针事件。

      Returns number

    • set alpha(value: number): void

      Parameters

      • value: number

      Returns void

    • get anchor(): ObservablePoint

      节点锚点,以节点宽高的百分比表示的定位点

      范围为 0-1,(0,0) 表示左上角,(0.5,0.5) 表示中心,(1,1) 表示右下角。 锚点决定了旋转和缩放的中心点,也影响节点的对齐方式。 设置锚点会自动重新计算 pivot 轴心点的像素坐标。

      Returns ObservablePoint

    • set anchor(value: IPoint): void

      Parameters

      • value: IPoint

      Returns void

    • get angle(): number

      节点旋转角度,以角度为单位的旋转角度(0-360度)

      这是 rotation 属性的角度版本,内部仍使用弧度存储。 正值为顺时针旋转,90度表示向右旋转90度。

      Returns number

    • set angle(value: number): void

      Parameters

      • value: number

      Returns void

    • get children(): LikoNode[]

      子节点列表,只读属性,获取当前节点的所有直接子节点

      此数组为只读,不应直接修改。要管理子节点,请使用 addChild、removeChild 等方法。 子节点在列表中的顺序决定了渲染顺序,索引越大的节点渲染在越上层。

      Returns LikoNode[]

    • get currentFrame(): number

      当前显示的动画帧索引(从 0 开始) 设置超出范围的值会自动重置为 0,并触发循环播放

      Returns number

    • set currentFrame(value: number): void

      Parameters

      • value: number

      Returns void

    • get destroyed(): boolean

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

      Returns boolean

    • get duration(): number

      动画的总持续时间(秒) 计算公式:总帧数 / 帧率

      Returns number

    • get filters(): Filter[]

      滤镜列表,只读属性,获取当前节点应用的所有滤镜效果

      此数组为只读,不应直接修改。要管理滤镜,请使用 addFilter、removeFilter 等方法。 滤镜按照添加顺序依次应用,可以通过组合多个滤镜创建复杂的视觉效果。

      Returns Filter[]

    • get height(): number

      节点高度,单位为像素

      可以显式设置高度值,或自动从内容计算( -1 表示自动计算)。 设置高度会影响锚点的轴心点位置,并触发 resize 事件。 对于图片、文本等内容节点,通常由内容自动确定高度。

      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 localMatrix(): Matrix

      本地变换矩阵,表示节点相对于父节点的几何变换

      此矩阵包含了节点的位置、旋转、缩放信息,用于高效的几何计算。 矩阵会在变换属性改变时自动重新计算,支持缓存以提高性能。 设置此矩阵会自动分解并更新 position、scale、rotation 属性。

      Returns Matrix

    • set localMatrix(value: Matrix): void

      Parameters

      Returns void

    • get parent(): undefined | LikoNode

      父节点引用,表示节点在树结构中的上级节点

      只有当节点被添加到某个父节点中时此属性才有值。 设置此属性会自动调用相应的 addChild 或 removeSelf 操作

      Returns undefined | LikoNode

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

      Parameters

      Returns void

    • get pivot(): IPoint

      节点轴心点,旋转和缩放变换的中心点坐标,只读属性

      轴心点是以像素为单位的绝对坐标,通常由 anchor 属性自动计算得出。 不建议直接修改,应该通过设置 anchor 属性来间接控制轴心点位置。

      Returns IPoint

    • get position(): ObservablePoint

      节点位置坐标,相对于父节点的本地坐标系

      返回可观察的坐标点对象,可以直接修改 x、y 或使用 position.set(x, y)。

      Returns ObservablePoint

    • set position(value: IPoint): void

      Parameters

      • value: IPoint

      Returns void

    • get rotation(): number

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

      正值为顺时针旋转,负值为逆时针旋转。旋转中心由 anchor 属性决定。 范围通常在 -Math.PI 到 Math.PI 之间,支持任意弧度值。

      Returns number

    • set rotation(value: number): void

      Parameters

      • value: number

      Returns void

    • get scale(): ObservablePoint

      节点缩放比率,影响节点及其子节点的显示大小

      返回可观察的缩放点对象,1.0 表示原始大小,0.5 表示缩小一半,2.0 表示放大一倍。 支持 x、y 轴独立缩放。缩放中心由 anchor 属性决定。

      Returns ObservablePoint

    • set scale(value: IPoint): void

      Parameters

      • value: IPoint

      Returns void

    • get scene(): undefined | IScene

      场景节点引用,提供场景级的管理功能

      只有当节点被添加到场景节点的子树中时此属性才有值。 建议在频繁使用时缓存为局部变量以减少向上遍历的开销

      Returns undefined | IScene

    • get scripts(): BaseScript<LikoNode>[]

      脚本列表,获取或设置当前节点的所有脚本实例

      脚本用于为节点添加行为逻辑和交互功能。设置新的脚本列表时, 会先销毁现有的所有脚本,然后添加新脚本。脚本按照添加顺序执行。

      Returns BaseScript<LikoNode>[]

    • set scripts(value: BaseScript<LikoNode>[]): void

      Parameters

      Returns void

    • get stage(): undefined | Stage

      舞台节点引用,提供根级渲染和输入管理

      只有当节点被添加到舞台的节点树中时此属性才有值。

      Returns undefined | Stage

    • get tintColor(): ColorData

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

      支持十六进制颜色值(如 0xff0000 表示红色)或颜色字符串。 叠加颜色会与节点原有颜色进行混合,白色(0xffffff)表示不改变原色。

      Returns ColorData

    • set tintColor(value: ColorData): void

      Parameters

      • value: ColorData

      Returns void

    • get transform(): Transform

      节点变换对象,统一管理节点的位置、旋转、缩放等2D变换属性

      通常不需要直接操作,而是通过 position、rotation、scale 等属性间接使用。

      Returns Transform

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

      自定义数据存储,用于存储节点相关的任意附加信息

      可以在此存储游戏逻辑相关的数据,如角色属性、状态信息等。 访问时会自动创建空对象,因此可以直接赋值使用。

      Returns Record<string, any>

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

      Parameters

      • value: Record<string, any>

      Returns void

    • get visible(): boolean

      节点可见性,控制节点是否参与渲染

      只有当 visible=true 且 enabled=true 时节点才可见。 不可见的节点不会被渲染,但仍会执行脚本逻辑。 子节点的可见性受父节点影响。

      Returns boolean

    • set visible(value: boolean): void

      Parameters

      • value: boolean

      Returns void

    • get width(): number

      节点宽度,单位为像素

      可以显式设置宽度值,或自动从内容计算( -1 表示自动计算)。 设置宽度会影响锚点的轴心点位置,并触发 resize 事件。 对于图片、文本等内容节点,通常由内容自动确定宽度。

      Returns number

    • set width(value: number): void

      Parameters

      • value: number

      Returns void

    • get worldAlpha(): number

      节点世界透明度,最终参与渲染的有效透明度,只读属性

      这是考虑了所有父节点透明度影响后的最终透明度值。 等于当前节点透明度与所有父节点透明度的乘积。 此值由渲染系统自动计算,无法直接设置。

      Returns number

    • get worldMatrix(): Matrix

      世界变换矩阵,表示节点相对于舞台根节点的最终变换

      此矩阵是节点及其所有父节点变换的复合结果,用于世界坐标转换。 矩阵会在任何父节点或当前节点变换时自动重新计算。 用于渲染和坐标空间转换,通常不需要手动设置。

      Returns Matrix

    Methods

    • 设置单个属性的内部实现,处理特殊属性类型的转换和绑定

      内部方法,负责将单个属性正确设置到节点上,包含事件监听器的自动绑定逻辑。 以"on"开头的函数属性会被转换为事件监听器,事件名为去掉"on"前缀后首字母小写的形式。 只有节点确实存在的属性才会被设置,确保类型安全。

      Parameters

      • key: string

        属性名称,支持普通属性和事件属性(on开头)

      • value: unknown

        属性值,可以是任意类型,函数类型的on属性会被转换为事件监听器

      Returns void

    • 添加子节点到当前节点

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

      Type Parameters

      Parameters

      • child: T

        要添加的子节点

      • Optionalindex: number

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

      Returns this

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

    • 为当前节点添加视觉滤镜效果

      滤镜会改变节点的渲染效果,如模糊、发光、颜色调整等。 多个滤镜会按照添加顺序依次应用,可以组合创建复杂的视觉效果。

      Type Parameters

      • T extends Filter

      Parameters

      • filter: T

        要添加的滤镜实例,如 BlurFilter、GlowFilter 等

      Returns this

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

    • 为当前节点添加行为逻辑脚本

      脚本用于为节点添加动态行为和交互逻辑,如移动、动画、AI等。 添加后脚本会自动绑定到当前节点,并立即开始执行其生命周期方法。 多个脚本按照添加顺序执行,可以组合实现复杂的行为。

      Type Parameters

      Parameters

      • script: T

        要添加的脚本实例,如 MovementScript、AnimationScript 等

      Returns this

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

    • 销毁精灵动画实例 在销毁前会自动停止动画播放并清空纹理集合,释放所有相关资源

      Returns void

    • 彻底销毁当前节点的所有子节点,释放所有相关资源

      与 removeChildren 不同,这是"硬删除"操作,被销毁的子节点无法再使用。 销毁过程是递归的,会同时销毁所有后代节点、脚本、滤镜和事件监听。 适用于确定不再需要子节点的场景,能有效防止内存泄漏。

      Returns this

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

    • 彻底销毁当前节点的所有滤镜,释放相关资源

      这是一个"硬删除"操作,会彻底销毁所有滤镜实例并释放显存资源。 销毁后的滤镜无法再使用,适用于确定不再需要滤镜效果的场景。

      Returns this

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

    • 彻底销毁当前节点的所有脚本,停止所有行为逻辑

      这是一个"硬删除"操作,会彻底销毁所有脚本实例并清理相关资源。 销毁后的脚本无法再使用,节点将失去所有脚本提供的行为能力。

      Returns this

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

    • 派发事件,触发指定类型的所有监听器

      立即触发当前节点上注册的指定类型的所有事件监听器,按照注册顺序依次调用。 可以传递任意数量和类型的参数给监听器函数,这些参数会原样传递给每个监听器。 事件触发是同步的,所有监听器会在此方法返回前全部执行完毕。 某些鼠标事件类型支持向父节点冒泡,具体行为取决于事件系统的设计。

      Parameters

      • type: string

        要触发的事件类型名称,不区分大小写

      • ...args: any[]

        传递给监听器的参数列表,可以是任意数量的任意类型参数

      Returns this

      返回当前节点实例,支持链式调用和方法串联

    • 根据筛选条件查找子节点,支持多种查找方式

      这是一个强大的节点查找工具,支持按 ID、标签名或节点类型进行查找。 可以选择只查找直接子节点,或递归查找整个子树。查找按照提供的条件 优先级进行:id > label > Class。找到第一个匹配的节点后立即返回。

      Type Parameters

      Parameters

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

        筛选条件对象

        • OptionalClass?: typeof LikoNode

          节点的类构造函数,用于类型检查

        • Optionaldeep?: boolean

          是否递归查找所有后代节点,默认为 false

        • Optionalid?: string

          节点的唯一标识符,精确匹配

        • Optionallabel?: string

          节点的标签名,精确匹配

      Returns undefined | T

      返回匹配的第一个子节点,未找到则返回 undefined

    • 根据筛选条件查找滤镜实例,用于动态修改滤镜参数

      在当前节点的滤镜列表中查找符合条件的滤镜,便于后续修改其属性。 查找优先级为:id > label > Class。找到第一个匹配的滤镜后立即返回。

      Type Parameters

      • T extends Filter

      Parameters

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

        筛选条件对象

        • OptionalClass?: typeof Filter

          滤镜的类构造函数,如 BlurFilter

        • Optionalid?: string

          滤镜的唯一标识符

        • Optionallabel?: string

          滤镜的标签名

      Returns undefined | T

      返回匹配的第一个滤镜实例,未找到则返回 undefined

    • 根据筛选条件查找脚本实例,用于动态控制脚本行为

      在当前节点的脚本列表中查找符合条件的脚本,便于后续调用其方法或修改属性。 查找优先级为:id > label > Class。找到第一个匹配的脚本后立即返回。

      Type Parameters

      Parameters

      • options: { Class?: new () => T; id?: string; label?: string }

        筛选条件对象

        • OptionalClass?: new () => T

          脚本的类构造函数,如 MovementScript

        • Optionalid?: string

          脚本的唯一标识符

        • Optionallabel?: string

          脚本的标签名

      Returns undefined | T

      返回匹配的第一个脚本实例,未找到则返回 undefined

    • 从JSON数据反序列化节点,完整恢复节点的状态和结构

      此方法用于从序列化的JSON数据中恢复节点,会设置节点的所有属性、创建子节点树、添加脚本和滤镜。

      Parameters

      • json: INodeData

        包含节点完整信息的数据对象,需要符合INodeData接口规范

      Returns this

      返回当前节点实例,支持链式调用和方法串联

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

      Returns number

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

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

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

      Returns Bounds

      返回本地边界对象

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

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

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

      Parameters

      • Optionalroot: LikoNode

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

      Returns Bounds

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

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

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

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

      Parameters

      • Optionalroot: LikoNode

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

      Returns RotatingRect

      返回考虑旋转的边界对象

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

    • 获取节点在世界坐标系中的最终旋转角度

      计算当前节点相对于世界坐标系或指定根节点的实际旋转角度,会累积所有父节点的旋转效果。 当节点有多层嵌套且各层都有旋转时,此方法返回的是所有旋转角度的累加结果。 常用于计算物体的实际朝向、旋转动画的相对计算、方向性碰撞检测等场景。

      Parameters

      • Optionalroot: LikoNode

        相对参考节点,指定计算的参考坐标系,传入null或undefined表示相对于舞台根节点

      Returns number

      累积后的旋转角度值,单位为弧度,正值表示顺时针旋转

    • 获取节点在世界坐标系中的最终缩放值

      计算当前节点相对于世界坐标系或指定根节点的实际缩放值,会累积所有父节点的缩放效果。 当节点有多层嵌套且各层都有缩放时,此方法返回的是所有缩放的累积结果。 常用于需要获取物体真实大小、碰撞检测边界计算、UI元素定位等场景。

      Parameters

      • Optionalroot: LikoNode

        相对参考节点,指定计算的参考坐标系,传入null或undefined表示相对于舞台根节点

      • Optionalout: IPoint

        用于存储结果的Point对象,可复用现有对象避免创建新实例,不传则自动创建

      Returns IPoint

      包含x和y轴世界缩放值的Point对象,值为所有父节点缩放的累积乘积

    • 跳转到动画的指定时间点 会根据时间计算对应的帧索引并跳转到该帧

      Parameters

      • time: number

        目标时间点(秒),如果超出动画总时长会按比例计算对应帧

      Returns AnimatedSprite

      当前实例,支持链式调用

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

      查询当前节点是否注册了指定类型的事件监听器,返回布尔值表示存在性。 此方法常用于条件判断,避免不必要的事件派发,提升性能。 只检查当前节点,不会检查父节点或子节点的监听器。

      Parameters

      • type: string

        要检查的事件类型名称,不区分大小写

      Returns boolean

      如果存在至少一个该类型的监听器返回true,否则返回false

    • 点击测试,判断世界坐标点是否命中当前节点的可交互区域

      将世界坐标转换为节点本地坐标,然后检查该点是否落在节点的边界矩形内。 优先使用显式设置的width/height,如果没有则使用getLocalBounds计算的动态边界。 这是指针事件系统的核心方法,用于确定鼠标点击、触摸操作是否作用于该节点。 注意此方法只进行几何计算,不考虑节点的透明度、可见性或是否启用交互。

      Parameters

      • point: IPoint

        要检测的世界坐标点,通常来自鼠标位置或触摸位置

      Returns boolean

      如果点在节点边界内返回true,否则返回false

    • 从指定 URL 加载动画资源 加载完成后会触发 loaded 事件

      Parameters

      • url: string

        动画资源的 URL 地址,通常是 JSON 格式的精灵表配置文件

      Returns Promise<void>

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

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

      Type Parameters

      Parameters

      • position: IPoint

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

      • Optionalout: P

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

      • Optionalroot: LikoNode

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

      Returns P

      返回转换后的世界坐标

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

    • 标记节点为脏状态,通知渲染系统该节点需要在下一帧更新

      这是引擎的核心优化机制,避免每次属性变化都立即重新计算。 不同类型的变化会触发不同的更新流程,系统会自动处理脏状态的传播。 通常不需要手动调用,属性设置时会自动触发。

      Parameters

      • type: DirtyType

        脏标记类型,指示具体哪种属性发生了变化

      Returns void

    • 移除指定的事件监听器,精确匹配后删除

      根据事件类型、监听器函数和调用者三个参数精确匹配,移除之前通过on或once注册的监听器。 三个参数必须与注册时完全相同才能成功移除,这确保了事件监听器的精确管理。 如果找不到匹配的监听器,调用此方法不会产生任何效果,也不会报错。 移除指针事件监听器不会自动禁用节点的指针交互功能。

      Parameters

      • type: string

        事件类型名称,必须与注册时完全一致,不区分大小写

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

        要移除的回调函数引用,必须是注册时的同一个函数对象

      • Optionalcaller: any

        回调函数的调用者,必须与注册时的caller相同

      Returns this

      返回当前节点实例,支持链式调用和方法串联

    • 批量移除事件监听器,按调用者过滤或全部清除

      如果指定了caller参数,会移除该调用者注册的所有事件监听器,不论事件类型。 如果不指定caller参数,会清除当前节点上的所有事件监听器。 这是一个便捷的清理方法,特别适用于组件销毁、对象重置、内存清理等场景。 不会影响子节点或父节点的事件监听器。

      Parameters

      • Optionalcaller: unknown

        指定要清除的调用者对象,如果为空则清除所有监听器

      Returns this

      返回当前节点实例,支持链式调用和方法串联

    • 注册事件监听器,为节点添加事件响应能力

      当指定类型的事件在节点上触发时,会调用提供的回调函数进行处理。 对于指针类型事件(click、pointerdown、pointermove等),会自动启用节点和父节点链的指针交互功能。 支持多个监听器监听同一事件,按注册顺序依次调用。事件支持从子节点向父节点的冒泡传播。 相同的事件类型、监听器函数和调用者组合只能注册一次,重复注册会覆盖之前的注册。

      Parameters

      • type: string

        事件类型名称,如"click"、"pointerdown"、"added"等,不区分大小写

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

        事件回调函数,接收事件对象和相关参数,函数内的this指向caller参数

      • Optionalcaller: any

        回调函数的执行上下文对象,决定函数内this的指向,通常传入当前对象实例

      Returns this

      返回当前节点实例,支持链式调用和方法串联

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

      功能与on方法相同,但监听器在第一次触发后会自动从事件系统中移除。 适用于只需要响应一次的事件场景,如初始化完成、资源加载完毕、一次性动画结束等。 同样支持指针事件的自动启用和父节点链的配置。如果事件从未触发,监听器会一直保留。 相同的事件类型、监听器函数和调用者组合只能注册一次。

      Parameters

      • type: string

        事件类型名称,如"load"、"complete"、"ready"等,不区分大小写

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

        事件回调函数,触发一次后会自动移除,函数内的this指向caller参数

      • Optionalcaller: any

        回调函数的执行上下文对象,决定函数内this的指向

      Returns this

      返回当前节点实例,支持链式调用和方法串联

    • 开始播放动画 注意:必须先将精灵添加到舞台(stage)才能调用此方法 如果动画已经在播放中,则不会重复开始 播放开始时会触发 played 事件

      Returns AnimatedSprite

      当前实例,支持链式调用

    • 从当前节点中移除指定的子节点,但不销毁该节点

      这是一个"软删除"操作,只是解除父子关系,不会销毁子节点。 被移除的子节点可以重新添加到其他父节点中继续使用。

      Type Parameters

      Parameters

      • Optionalchild: T

        要移除的子节点,如果不是当前节点的子节点则忽略

      Returns this

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

    • 移除当前节点的所有子节点,但不销毁它们

      这是一个批量移除操作,类似于多次调用 removeChild。 所有子节点都会被"软删除",可以重新添加到其他位置使用。 适用于需要清空容器但保留子节点的场景。

      Returns this

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

    • 从当前节点移除指定的滤镜效果,但不销毁滤镜实例

      移除后该滤镜效果会立即从节点上消失,但滤镜实例仍然存在, 可以重新添加到其他节点或同一节点上继续使用。

      Type Parameters

      • T extends Filter

      Parameters

      • Optionalfilter: T

        要移除的滤镜实例,如果不存在则忽略

      Returns this

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

    • 将当前节点从其父节点中移除,相当于"取消挂载"

      这是一个安全的移除操作,即使当前节点没有父节点也不会出错。 移除后节点会脱离节点树,但可以重新添加到其他位置。 相当于调用 parent.removeChild(this)。

      Returns this

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

    • 修改子节点在子节点列表中的索引位置,影响渲染层级

      索引越大的子节点在渲染时越靠上层。通过调整索引可以改变节点的层级关系, 实现置顶、置底等效果。索引必须在有效范围内,否则会抛出错误。

      Parameters

      • child: LikoNode

        要修改索引的子节点,必须是当前节点的直接子节点

      • index: number

        新的索引位置,从 0 开始,必须小于子节点总数

      Returns this

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

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

    • 根据数据配置重新设置节点的所有滤镜,完全替换现有滤镜效果

      先销毁当前节点上的所有滤镜实例,然后根据提供的滤镜数据重新创建和配置滤镜。 每个滤镜数据会通过注册系统查找对应的滤镜类进行实例化,然后设置滤镜属性并应用到节点。 滤镜会按照数组顺序依次应用,创建复合的视觉效果。如果某个滤镜类未注册,会跳过该滤镜。 常用于视觉效果配置、场景氛围切换、动态效果应用等场景。

      Parameters

      • Optionalfilters: IFilterData[]

        滤镜配置数据数组,每个元素包含滤镜类型、参数和元数据信息

      Returns this

      返回当前节点实例,支持链式调用和方法串联

    • 批量设置节点属性,支持智能属性映射和事件绑定

      遍历属性对象并逐一设置到当前节点上,支持所有公开的节点属性如position、scale、alpha等。 特殊处理以"on"开头的属性(如onClick、onPointerDown),会自动注册为对应的事件监听器。 对于不存在的属性会安全忽略,不会抛出错误,保证数据兼容性。 常用于节点初始化、JSON数据恢复、配置应用等场景。

      Parameters

      • Optionalprops: Record<string, unknown>

        属性键值对对象,键为属性名,值为要设置的属性值,支持嵌套对象和函数

      Returns this

      返回当前节点实例,支持链式调用和方法串联

    • 根据数据配置重新设置节点的所有脚本,完全替换现有脚本

      先销毁当前节点上的所有脚本实例,然后根据提供的脚本数据重新创建和配置脚本。 每个脚本数据会通过注册系统查找对应的脚本类进行实例化,然后设置脚本属性并绑定到节点。 如果某个脚本类未注册或数据格式错误,会跳过该脚本而不影响其他脚本的创建。 常用于场景加载、节点模板应用、脚本配置动态更新等场景。

      Parameters

      • Optionalscripts: IScriptData[]

        脚本配置数据数组,每个元素包含脚本类型、属性和元数据信息

      Returns this

      返回当前节点实例,支持链式调用和方法串联

    • 停止播放动画 如果动画已经停止,则不会执行任何操作 停止时会触发 stopped 事件,但不会重置当前帧位置

      Returns AnimatedSprite

      当前实例,支持链式调用

    • 通知渲染系统滤镜参数已发生变化,需要重新渲染

      当动态修改滤镜的属性(如模糊半径、颜色值等)后,需要调用此方法 告知渲染系统重新计算滤镜效果。这是一个性能优化机制,避免每次 参数变化都立即重新渲染。

      Type Parameters

      • T extends Filter

      Parameters

      • filter: T

        参数已变化的滤镜实例

      Returns this

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

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

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

      Type Parameters

      Parameters

      • position: IPoint

        世界坐标位置

      • Optionalout: P

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

      • Optionalroot: LikoNode

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

      Returns P

      返回转换后的本地坐标

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