liko
    Preparing search index...

    Class ObservablePoint

    可观察的二维坐标点类,当坐标值发生变化时会自动触发 markDirty 回调

    该类主要用于监听和追踪坐标点的变化,常用于需要实时更新变换的场景。大部分情况下,使用 Point 类即可满足需求。

    Index

    Constructors

    Properties

    Accessors

    x y

    Methods

    Constructors

    • 创建一个新的可观察坐标点实例

      Parameters

      • observer: Observer

        观察者对象,必须实现 markDirty 方法用于接收坐标变化的通知

      • x: number = 0

        x 轴坐标值,默认为 0

      • y: number = 0

        y 轴坐标值,默认为 0

      Returns ObservablePoint

      观察者对象是必需的,它会在坐标发生任何变化时收到通知。 初始坐标值的设置不会触发 markDirty 回调。

    Properties

    _x: number = 0
    _y: number = 0

    Accessors

    • get x(): number

      x 轴坐标值

      Returns number

      获取或设置 x 轴坐标。设置新值时,如果值发生变化会自动触发观察者的 markDirty 回调, 传入 DirtyType.transform 参数表示变换需要更新。

    • set x(value: number): void

      Parameters

      • value: number

      Returns void

    • get y(): number

      y 轴坐标值

      Returns number

      获取或设置 y 轴坐标。设置新值时,如果值发生变化会自动触发观察者的 markDirty 回调, 传入 DirtyType.transform 参数表示变换需要更新。

    • set y(value: number): void

      Parameters

      • value: number

      Returns void

    Methods

    • 将坐标点按指定增量进行相对偏移

      Parameters

      • dx: number

        x 轴偏移量(正值向右,负值向左)

      • dy: number

        y 轴偏移量(正值向下,负值向上)

      Returns this

      当前实例,支持链式调用

      此方法会直接修改坐标值并始终触发 markDirty 回调,即使偏移量为 0。

    • 创建当前坐标点的完整副本

      Parameters

      • Optionalobserver: Observer

        可选的新观察者对象,如果不提供则使用当前实例的观察者

      Returns ObservablePoint

      新的 ObservablePoint 实例,包含相同的坐标值

      新创建的实例是完全独立的,修改其中一个不会影响另一个。 如果提供新的观察者,副本将使用新观察者;否则共享相同的观察者对象。 复制过程中不会触发任何 markDirty 回调。

    • 从指定坐标点复制坐标值到当前实例

      Parameters

      • point: IPoint

        源坐标点对象,必须包含 x 和 y 属性

      Returns this

      当前实例,支持链式调用

      只有当源坐标与当前坐标不同时才会更新并触发 markDirty 回调。

    • 比较当前坐标点与给定坐标点是否完全相同

      Parameters

      • point: IPoint

        待比较的坐标点对象,必须包含 x 和 y 属性

      Returns boolean

      如果两点的 x 和 y 坐标都相等则返回 true,否则返回 false

      此方法执行严格相等比较(===),不会触发任何坐标变化回调。

    • 批量设置坐标点的位置

      Parameters

      • x: number = 0

        x 轴坐标值,默认为 0

      • y: number = x

        y 轴坐标值,如果不提供则使用 x 的值

      Returns this

      当前实例,支持链式调用

      这是批量设置坐标的推荐方法,只有当至少一个坐标值发生变化时才会触发 markDirty 回调。 如果两个坐标都没有变化,则不会触发回调,避免不必要的更新。