EarthSDK
    正在准备搜索索引...

    类 ESPlayer

    ESPlayer 类继承自 ESSceneObject,用于表示和控制一个播放器对象。 该类提供了播放器的核心功能,如播放、暂停、循环播放、设置播放速度等。 通过 AbsolutePlayer 实例来实现播放器的具体功能,并与 ESPlayer 的属性进行同步。

    核心功能包括:

    • 获取和设置播放进度比例(ratio)
    • 获取播放进度比例变化的事件(ratioChanged)
    • 获取和设置播放器的各种属性,如 currentTime、startTime、stopTime、playing、loop、speed
    • 通过 getProperties 方法获取播放器相关的属性数组

    使用示例:

    构造函数参数:

    可选的实例 ID,用于唯一标识一个 ESPlayer 对象。

    特殊使用限制或潜在的副作用:

    • 在设置播放进度比例时,如果设置的值超出播放范围,可能会产生未定义的行为。
    • 在绑定属性时,确保 AbsolutePlayer 的属性与 ESPlayer 的属性同步,以避免数据不一致。

    层级 (查看层级一览)

    索引

    构造函数

    • 构造函数,初始化 ESPlayer 实例。

      参数

      • 可选id: string

        可选的实例 ID。

      返回 ESPlayer

    属性

    currentTime: number = 0

    当前时间

    currentTimeChanged: Listener<[number, number]>
    currentTimeReact: ReactiveVariable<number>
    devTags: undefined | string[] = ...

    对象类型名称相关的开发标签数组,使用 reactArrayWithUndefined 进行响应式处理,默认为 undefined。

    devTagsChanged: Listener<[undefined | string[], undefined | string[]]>
    devTagsReact: ReactiveVariable<undefined | string[]>
    execOnceFuncStr: undefined | string = ...

    一次性执行函数的字符串表示,默认为 undefined。

    execOnceFuncStrChanged: Listener<[undefined | string, undefined | string]>
    execOnceFuncStrReact: ReactiveVariable<string> | ReactiveVariable<undefined>
    extras: JsonValue = ...

    扩展属性 JSON,必须整体赋值,使用 reactJson 进行响应式处理,默认为 undefined。

    extrasChanged: Listener<[JsonValue, JsonValue]>
    loop: boolean = false

    是否循环

    loopChanged: Listener<[boolean, boolean]>
    loopReact: ReactiveVariable<false> | ReactiveVariable<true>
    name: string = '未命名场景对象'

    对象名称,默认为 '未命名场景对象'。

    nameChanged: Listener<[string, string]>
    nameReact: ReactiveVariable<string>
    playing: boolean = false

    是否播放

    playingChanged: Listener<[boolean, boolean]>
    playingReact: ReactiveVariable<false> | ReactiveVariable<true>
    ref: undefined | string = ...

    对象引用,设置后可通过对象管理器 objm.$refs.xxx 快速获取到对象,默认为 undefined。

    refChanged: Listener<[undefined | string, undefined | string]>
    refReact: ReactiveVariable<string> | ReactiveVariable<undefined>
    speed: number = 1

    播放速度

    speedChanged: Listener<[number, number]>
    speedReact: ReactiveVariable<number>
    startTime: number = 0

    开始时间

    startTimeChanged: Listener<[number, number]>
    startTimeReact: ReactiveVariable<number>
    stopTime: number = 0

    结束时间

    stopTimeChanged: Listener<[number, number]>
    stopTimeReact: ReactiveVariable<number>
    toDestroyFuncStr: undefined | string = ...

    销毁函数的字符串表示,默认为 undefined。

    toDestroyFuncStrChanged: Listener<[undefined | string, undefined | string]>
    toDestroyFuncStrReact: ReactiveVariable<string> | ReactiveVariable<undefined>
    updateFuncStr: undefined | string = ...

    更新函数的字符串表示,默认为 undefined。

    updateFuncStrChanged: Listener<[undefined | string, undefined | string]>
    updateFuncStrReact: ReactiveVariable<string> | ReactiveVariable<undefined>
    _lastMemId: number = -1
    context: ESObjectsContext = ...

    对象上下文,用于管理场景对象的创建、销毁、查找等操作。

    create: <T extends ESSceneObject>(
        sceneObjectType: string | (new (id?: string) => T),
        id?: string,
    ) => undefined | T = ...

    创建场景对象的方法。

    类型声明

      • <T extends ESSceneObject>(
            sceneObjectType: string | (new (id?: string) => T),
            id?: string,
        ): undefined | T
      • 根据场景对象类型名或构造函数创建场景对象实例

        类型参数

        参数

        • sceneObjectType: string | (new (id?: string) => T)

          场景对象类型名或构造函数

        • 可选id: string

          可选的场景对象ID

        返回 undefined | T

        创建的场景对象实例,如果未找到对应的构造函数则返回 undefined

    createFromClass: <T extends ESSceneObject>(
        sceneObjConstructor: new (id?: string) => T,
        id?: string,
    ) => T = ...

    根据类创建场景对象的方法。

    类型声明

      • <T extends ESSceneObject>(
            sceneObjConstructor: new (id?: string) => T,
            id?: string,
        ): T
      • 根据场景对象的构造函数创建场景对象实例

        类型参数

        参数

        • sceneObjConstructor: new (id?: string) => T

          场景对象的构造函数

        • 可选id: string

          可选的场景对象ID,如果未提供或已存在相同ID的对象,将自动生成新的ID

        返回 T

        创建的场景对象实例

    createFromJson: <T extends ESSceneObject>(
        sceneObjectJson: JsonValue & { type: string; [k: string]: any },
    ) => undefined | T = ...

    根据 JSON 数据创建场景对象的方法。

    类型声明

      • <T extends ESSceneObject>(
            sceneObjectJson: JsonValue & { type: string; [k: string]: any },
        ): undefined | T
      • 根据 JSON 对象创建场景对象实例,并将 JSON 数据赋值给场景对象

        类型参数

        参数

        • sceneObjectJson: JsonValue & { type: string; [k: string]: any }

          包含场景对象类型和其他属性的 JSON 对象

        返回 undefined | T

        创建的场景对象实例,如果未找到对应的构造函数则返回 undefined

    createFromUrl: (url: string, id?: string) => undefined | ESSceneObject = ...

    根据 URL 创建场景对象的方法。

    defaults: Record<string, any> = {}
    destroySceneObject: (sceneObject: ESSceneObject) => boolean = ...

    销毁场景对象的方法。

    类型声明

      • (sceneObject: ESSceneObject): boolean
      • 销毁指定的场景对象实例

        参数

        返回 boolean

        场景对象是否已被销毁

    getEnv: (varName: string) => undefined | string = ...

    获取环境变量的方法。

    类型声明

      • (varName: string): undefined | string
      • 获取环境变量

        参数

        • varName: string

          环境变量名

        返回 undefined | string

        环境变量值

    环境变量的键。

    对应的环境变量值,如果未找到则返回 undefined。

    getSceneObj: (option?: string) => undefined | ESSceneObject | ESSceneObject[] = ...

    根据对象 ID 获取场景对象的方法。

    类型声明

      • (option?: string): undefined | ESSceneObject | ESSceneObject[]
      • 根据不同的条件获取场景对象实例

        参数

        • 可选option: string

          可选的条件,如果未提供则返回所有场景对象;如果以 'ES' 开头,则返回指定类型的所有场景对象;否则返回指定ID的场景对象

        返回 undefined | ESSceneObject | ESSceneObject[]

        符合条件的场景对象实例数组或单个实例,如果未找到则返回 undefined

    对象的唯一标识符。

    对应的场景对象,如果未找到则返回 undefined。

    getSceneObjById: (id: string) => undefined | ESSceneObject = ...

    根据对象 ID 获取场景对象的方法。

    类型声明

      • (id: string): undefined | ESSceneObject
      • 根据场景对象的ID获取场景对象实例

        参数

        • id: string

          场景对象的ID

        返回 undefined | ESSceneObject

        对应的场景对象实例,如果未找到则返回 undefined

    对象的唯一标识符。

    对应的场景对象,如果未找到则返回 undefined。

    getSceneObject: (option?: string) => undefined | ESSceneObject | ESSceneObject[] = ...

    根据对象 ID 获取场景对象的方法。

    类型声明

      • (option?: string): undefined | ESSceneObject | ESSceneObject[]
      • 根据不同的条件获取场景对象实例

        参数

        • 可选option: string

          可选的条件,如果未提供则返回所有场景对象;如果以 'ES' 开头,则返回指定类型的所有场景对象;否则返回指定ID的场景对象

        返回 undefined | ESSceneObject | ESSceneObject[]

        符合条件的场景对象实例数组或单个实例,如果未找到则返回 undefined

    对象的唯一标识符。

    对应的场景对象,如果未找到则返回 undefined。

    getSceneObjectById: (id: string) => undefined | ESSceneObject = ...

    根据对象 ID 获取场景对象的方法。

    类型声明

      • (id: string): undefined | ESSceneObject
      • 根据场景对象的ID获取场景对象实例

        参数

        • id: string

          场景对象的ID

        返回 undefined | ESSceneObject

        对应的场景对象实例,如果未找到则返回 undefined

    对象的唯一标识符。

    对应的场景对象,如果未找到则返回 undefined。

    getStrFromEnv: (str: string) => string = ...

    从环境变量中获取字符串值的方法。

    类型声明

      • (str: string): string
      • 根据含有环境变量的字符串获取真实路径

        参数

        • str: string

          包含环境变量的字符串,环境变量格式为 ${xxx-xxx}

        返回 string

        替换环境变量后的真实路径字符串

    环境变量的键。

    对应的字符串值,如果未找到则返回 undefined。

    innerRegister: <T extends ESSceneObject>(
        sceneObjectType: string,
        sceneObjConstructor: new () => T,
        extraInfo?: { [k: string]: any },
    ) => string = ...

    注册对象到上下文的方法。

    类型声明

      • <T extends ESSceneObject>(
            sceneObjectType: string,
            sceneObjConstructor: new () => T,
            extraInfo?: { [k: string]: any },
        ): string
      • 注册场景对象类型及其构造函数

        类型参数

        参数

        • sceneObjectType: string

          场景对象类型名

        • sceneObjConstructor: new () => T

          场景对象的构造函数

        • 可选extraInfo: { [k: string]: any }

          可选的额外信息,将存储在构造函数的扩展属性中

        返回 string

        注册的场景对象类型名

    setEnv: (varName: string, value: undefined | string) => void = ...

    设置环境变量的方法。

    类型声明

      • (varName: string, value: undefined | string): void
      • 设置环境变量

        参数

        • varName: string

          环境变量名

        • value: undefined | string

          环境变量值

        返回 void

    环境变量的键。

    环境变量的值。

    type: string = ...

    静态属性,用于注册 ESPlayer 类型,包含中文名称、标签和描述信息。

    访问器

    • get _jsonStr(): string

      获取对象的 JSON 字符串表示。

      返回 string

    • set _jsonStr(value: string): void

      根据 JSON 字符串设置对象的属性。

      参数

      • value: string

        JSON 字符串。

      返回 void

    • get absolutePlayer(): AbsolutePlayer

      获取 AbsolutePlayer 实例。

      返回 AbsolutePlayer

    • get activeViewer(): undefined | ESViewer

      返回 undefined | ESViewer

    • set activeViewer(value: undefined | ESViewer): void

      参数

      返回 void

    • get activeViewerChanged(): Listener<
          [undefined | ESViewer, undefined | ESViewer],
      >

      返回 Listener<[undefined | ESViewer, undefined | ESViewer]>

    • get attachedViewers(): Set<ESViewer>

      获取对象当前存在于哪些视口上的集合。

      返回 Set<ESViewer>

    • get completeJson(): JsonValue

      获取对象的 JSON 表示,包含所有属性。包括默认值

      返回 JsonValue

    • get createdEvent(): Event<[]>

      获取对象创建事件。

      返回 Event<[]>

    • get defaultProps(): {
          devTags: ReactiveVariable<undefined | string[]>;
          execOnceFuncStr: undefined | string;
          extras: ReactiveVariable<JsonValue>;
          name: string;
          ref: undefined | string;
          toDestroyFuncStr: undefined | string;
          updateFuncStr: undefined | string;
      }

      获取对象的默认属性。

      返回 {
          devTags: ReactiveVariable<undefined | string[]>;
          execOnceFuncStr: undefined | string;
          extras: ReactiveVariable<JsonValue>;
          name: string;
          ref: undefined | string;
          toDestroyFuncStr: undefined | string;
          updateFuncStr: undefined | string;
      }

      • devTags: ReactiveVariable<undefined | string[]>

        对象类型名称相关的开发标签数组,使用 reactArrayWithUndefined 进行响应式处理,默认为 undefined。

      • execOnceFuncStr: undefined | string

        一次性执行函数的字符串表示,默认为 undefined。

      • extras: ReactiveVariable<JsonValue>

        扩展属性 JSON,必须整体赋值,使用 reactJson 进行响应式处理,默认为 undefined。

      • name: string

        对象名称,默认为 '未命名场景对象'。

      • ref: undefined | string

        对象引用,设置后可通过对象管理器 objm.$refs.xxx 快速获取到对象,默认为 undefined。

      • toDestroyFuncStr: undefined | string

        销毁函数的字符串表示,默认为 undefined。

      • updateFuncStr: undefined | string

        更新函数的字符串表示,默认为 undefined。

    • get disposers(): (() => void)[]

      返回 (() => void)[]

    • get flushEvent(): Event<[]>

      获取刷新对象事件。

      返回 Event<[]>

    • get id(): string

      获取对象的唯一标识符。

      返回 string

    • get json(): JsonValue

      获取对象的 JSON 表示。省略默认值属性,精简json

      返回 JsonValue

    • set json(value: JsonValue): void

      根据 JSON 数据设置对象的属性。

      参数

      返回 void

    • get memId(): number

      返回 number

    • get parentID(): string

      获取当前对象指定父级对象,未指定返回自身。

      返回 string

    • set parentID(value: undefined | string): void

      参数

      • value: undefined | string

      返回 void

    • get ratio(): number

      获取播放进度比例。

      返回 number

    • set ratio(value: number): void

      设置播放进度比例。

      参数

      • value: number

        要设置的播放进度比例值。

      返回 void

    • get ratioChanged(): Listener<[number, number]>

      获取播放进度比例变化的事件。

      返回 Listener<[number, number]>

    • get toDestroyEvent(): Listener

      返回 Listener

    • get toDestroyFunc(): undefined | ((sceneObject: ESSceneObject) => void)

      获取对象的销毁函数。

      返回 undefined | ((sceneObject: ESSceneObject) => void)

    • set toDestroyFunc(
          value: undefined | ((sceneObject: ESSceneObject) => void),
      ): void

      设置对象的销毁函数。

      参数

      • value: undefined | ((sceneObject: ESSceneObject) => void)

        销毁函数。

      返回 void

    • get toDestroyFuncChanged(): Listener<
          [
              undefined
              | ((sceneObject: ESSceneObject) => void),
              undefined | ((sceneObject: ESSceneObject) => void),
          ],
      >

      获取销毁函数改变事件。

      返回 Listener<
          [
              undefined
              | ((sceneObject: ESSceneObject) => void),
              undefined | ((sceneObject: ESSceneObject) => void),
          ],
      >

    • get typeName(): string

      获取对象的类型名称,由子类实现。

      返回 string

    • get updateFunc(): | undefined
      | ((sceneObject: ESSceneObject, timeStamp: number) => void)

      获取对象的更新函数。

      返回 undefined | ((sceneObject: ESSceneObject, timeStamp: number) => void)

    • set updateFunc(
          value:
              | undefined
              | ((sceneObject: ESSceneObject, timeStamp: number) => void),
      ): void

      设置对象的更新函数。

      参数

      • value: undefined | ((sceneObject: ESSceneObject, timeStamp: number) => void)

        更新函数。

      返回 void

    • get updateFuncChanged(): Listener<
          [
              undefined
              | ((sceneObject: ESSceneObject, timeStamp: number) => void),
              undefined | ((sceneObject: ESSceneObject, timeStamp: number) => void),
          ],
      >

      获取更新函数改变事件。

      返回 Listener<
          [
              undefined
              | ((sceneObject: ESSceneObject, timeStamp: number) => void),
              undefined | ((sceneObject: ESSceneObject, timeStamp: number) => void),
          ],
      >

    • get viewerAttached(): Event<[ESViewer]>

      获取对象创建在视口上的事件。

      返回 Event<[ESViewer]>

    • get viewerDetached(): Event<[ESViewer]>

      获取对象从视口移除的事件。

      返回 Event<[ESViewer]>

    • get $refs(): { [k: string]: undefined | ESSceneObject }

      获取所有引用对象的集合。

      返回 { [k: string]: undefined | ESSceneObject }

    • get envs(): { [k: string]: undefined | string }

      获取所有环境变量的集合。

      返回 { [k: string]: undefined | string }

    方法

    • 参数

      • disposeFunc: () => void

      返回 () => void

    • 类型参数

      • T extends { destroy(): void }

      参数

      • obj: T

      返回 T

    • 将对象添加到指定视口中。

      参数

      • viewer: ESViewer

        要添加对象的视口。

      返回 void

    • 参数

      • disposeFunc: () => void

      返回 () => void

    • 类型参数

      • T extends { destroy(): void }

      参数

      • obj: T

      返回 T

    • 创建与视口关联的对象,并返回一个销毁函数,用于手动销毁关联对象。

      参数

      • createViewerPropSceneObject: (viewer: ESViewer) => undefined | Destroyable

        一个函数,用于创建与视口关联的对象。

      返回 () => void

      一个销毁函数,调用该函数可以销毁所有关联对象。

    • 参数

      • disposeFunc: () => void

      返回 () => void

    • 返回 undefined

    • 请不要重写destroy,请使用destroyImp来重写!

      返回 undefined

    • 返回 void

    • 参数

      • disposeFunc: () => void

      返回 () => void

    • 类型参数

      • T extends { destroy(): void }

      参数

      • obj: T

      返回 T

    • 类型参数

      • T extends { destroy(): void }

      参数

      • obj: T

      返回 T

    • 刷新对象,触发刷新事件。

      返回 void

    • 获取对象的属性列表,用于展示和编辑对象的属性。

      参数

      • 可选language: string

        语言代码,可选参数,用于国际化。

      返回 Property[]

      属性列表。

    • 返回 boolean

    • 返回 boolean

    • 注册与视口关联的对象,当对象被添加到视口或从视口移除时,会自动创建或销毁关联对象。

      参数

      • createViewerPropSceneObject: (viewer: ESViewer) => undefined | Destroyable

        一个函数,用于创建与视口关联的对象。

      返回 void

    • 注册与视口容器关联的对象,当对象被添加到视口或从视口移除时,会自动创建或销毁关联对象。

      参数

      • createContainerPropSceneObject: (viewer: ESViewer, container: HTMLDivElement) => undefined | Destroyable

        一个函数,用于创建与视口容器关联的对象。

      返回 void

    • 将对象从指定视口中移除。

      参数

      • viewer: ESViewer

        要移除对象的视口。

      返回 void

    • 类型参数

      • T extends { tryDestroy(): void }

      参数

      • obj: T

      返回 T

    • 返回 undefined

    • 类型参数

      • T extends { tryDestroy(): void }

      参数

      • obj: T

      返回 T

    • 返回 {
          currentTime: number;
          devTags: ReactiveVariable<undefined | string[]>;
          execOnceFuncStr: undefined | string;
          extras: ReactiveVariable<JsonValue>;
          loop: boolean;
          name: string;
          playing: boolean;
          ref: undefined | string;
          speed: number;
          startTime: number;
          stopTime: number;
          toDestroyFuncStr: undefined | string;
          updateFuncStr: undefined | string;
      }

      • currentTime: number

        当前时间

      • devTags: ReactiveVariable<undefined | string[]>

        对象类型名称相关的开发标签数组,使用 reactArrayWithUndefined 进行响应式处理,默认为 undefined。

      • execOnceFuncStr: undefined | string

        一次性执行函数的字符串表示,默认为 undefined。

      • extras: ReactiveVariable<JsonValue>

        扩展属性 JSON,必须整体赋值,使用 reactJson 进行响应式处理,默认为 undefined。

      • loop: boolean

        是否循环

      • name: string

        对象名称,默认为 '未命名场景对象'。

      • playing: boolean

        是否播放

      • ref: undefined | string

        对象引用,设置后可通过对象管理器 objm.$refs.xxx 快速获取到对象,默认为 undefined。

      • speed: number

        播放速度

      • startTime: number

        开始时间

      • stopTime: number

        结束时间

      • toDestroyFuncStr: undefined | string

        销毁函数的字符串表示,默认为 undefined。

      • updateFuncStr: undefined | string

        更新函数的字符串表示,默认为 undefined。

    • 获取父类的类型,用于创建对象时对象本身没有实现类,则使用父类的实现类,一直向上寻找,直到ESSceneObject的实现类

      类型参数

      返回 T

      父类的类型

    • 完善版注册方法

      类型参数

      参数

      • className: string
      • ctor: T & new (id?: string) => ESSceneObject
      • 可选meta: Partial<{ chsName: string; description: string; tags: string[] }>

      返回 string