Interface EventCallback

Five 事件列表

可以通过 five.on(METHOD_NAME, METHOD) 调用

interface EventCallback {
    camera.update(event: StateEvent): void;
    cameraDirectionUpdate(coordinates: Pick<Pose, "longitude" | "latitude">, userAction: boolean): void;
    cameraFovUpdate(fov: number, userAction: boolean): void;
    cameraPositionUpdate(offset: Vector3, userAction: boolean): void;
    cameraUpdate(pose: Pose, userAction: boolean): void;
    currentState.change(event: StateEvent): void;
    currentStateChange(state: State, userAction: boolean): void;
    dblTapGesture(raycaster: Raycaster, tapPosition: Vector2, final: boolean): void;
    dispose(): void;
    error(error: Error): void;
    fps(fps: number): void;
    gesture(type: GestureTypes, pointers: {
        delta?: number;
        x: number;
        y: number;
    }[], final: boolean): void;
    gesture.dbltap(event: GestureEvent): void;
    gesture.momentum(event: GestureEvent): void;
    gesture.mousemove(event: GestureEvent): void;
    gesture.mousewheel(event: GestureEvent): void;
    gesture.pan(event: GestureEvent): void;
    gesture.pinch(event: GestureEvent): void;
    gesture.press(event: GestureEvent): void;
    gesture.tap(event: GestureEvent): void;
    helpers.visible(event: ObjectEvent): void;
    helpersVisibleChange(visible: boolean): void;
    initAnimation.end(event: StateEvent): void;
    initAnimation.start(event: StateEvent): void;
    initAnimationEnded(panoIndex: number, pose: Pose, userAction: boolean): void;
    initAnimationWillStart(panoIndex: number, pose: Pose, userAction: boolean): void;
    interiaPan(pose: Pose, final: boolean): void;
    intersect.update(event: IntersectEvent): void;
    intersectionHidden(): void;
    intersectionOnModelUpdate(intersection: Intersection, mesh: Object3D): void;
    load(input: any, work: Work, state: Partial<State>): void;
    loaded(input: any, work: Work): void;
    mode.change(event: ModeChangeEvent): void;
    mode.change.request(event: ModeChangeEvent): void;
    modeChange(mode: Mode, prevMode: Mode, panoIndex: number, toPose: Pose, userAction: boolean): void;
    model.changeShownFloor(event: ModelEvent): void;
    model.error(event: ModelEvent): void;
    model.load(event: ModelEvent): void;
    model.request(event: ModelEvent): void;
    modelLoadError(error: Error, model: Model): void;
    modelLoaded(model: Model): void;
    modelShownFloorChange(shownFloor: number, floorLength: number): void;
    modelWillLoad(workModel: WorkModel): void;
    models.load(event: ModelsEvent): void;
    models.refined(event: ModelsEvent): void;
    mouseWheel(delta: number, fov: number, final: boolean): void;
    moveToPano(panoIndex: number, userAction: boolean): void;
    moveToPanoCanceled(panoIndex: number): void;
    movingToPano(panoIndex: number, prevPanoIndex: number, progress: number): void;
    network(source: string, type: NetworkType, state: NetworkState, detail: string): void;
    network.resource(event: NetworkResourceEvent): void;
    panGesture(pose: Pose, final: boolean): void;
    pano.arrived(event: PanoEvent): void;
    pano.cancel(event: PanoEvent): void;
    pano.error(event: PanoEvent): void;
    pano.moveTo(event: PanoEvent): void;
    pano.moving(event: PanoEvent): void;
    pano.request(event: PanoEvent): void;
    pano.select(event: PanoEvent): void;
    pano.texture.abort(event: PanoTextureEvent): void;
    pano.texture.error(event: PanoTextureEvent): void;
    pano.texture.load(event: PanoTextureEvent): void;
    pano.texture.progress(event: PanoTextureEvent): void;
    pano.texture.success(event: PanoTextureEvent): void;
    panoArrived(panoIndex: number, pose: Pose, userAction: boolean): void;
    panoLoadError(error: Error, panoIndex: number): void;
    panoLoaded(panoIndex: number): void;
    panoSelected(panoIndex: number): void;
    panoWillArrive(panoIndex: number, pose: Pose, userAction: boolean): void;
    panoWillLoad(panoIndex: number): void;
    pinchGesture(scale: number, fov: number, final: boolean): void;
    pressGesture(raycaster: Raycaster, tapPosition: Vector2, duration: number, final: boolean): void;
    render(event: RenderEvent): void;
    render.prepare(event: RenderEvent): void;
    renderFrame(rendered: boolean): void;
    setState(state: State): void;
    state.change(event: StateEvent): void;
    state.set(event: StateEvent): void;
    state.synced(event: StateEvent): void;
    stateChange(state: State, userAction: boolean): void;
    stateSynced(state: State): void;
    tapGesture(raycaster: Raycaster, tapPosition: Vector2, final: boolean): void;
    textureAbort(panoIndex: number): void;
    textureError(error: Error, panoIndex: number): void;
    textureLoaded(panoIndex: number, meta: NetWorkMeta[]): void;
    textureLoading(progress: number, panoIndex: number): void;
    textureStartLoad(panoIndex: number): void;
    wantsChangeCameraFov(fov: number): false | void;
    wantsChangeMode(mode: Mode, prevMode: Mode): false | void;
    wantsDblTapGesture(raycaster: Raycaster, tapPosition: Vector2, final: boolean): false | void;
    wantsGesture(type: GestureTypes, pointers: {
        delta?: number;
        x: number;
        y: number;
    }[], final: boolean): false | void;
    wantsInteriaPan(pose: Pose): false | void;
    wantsMouseWheel(delta: number, nextFov: number, final: boolean): false | void;
    wantsMoveToPano(panoIndex: number, options: MovePanoOptions, userAction: boolean): false | void;
    wantsPanGesture(pose: Pose, final: boolean): false | void;
    wantsPinchGesture(scale: number, nextFov: number, final: boolean): false | void;
    wantsPressGesture(raycaster: Raycaster, tapPosition: Vector2, duration: number, final: boolean): false | void;
    wantsShowIntersectionOnModel(raycaster: Raycaster): false | void;
    wantsTapGesture(raycaster: Raycaster, tapPosition: Vector2, final: boolean): false | void;
    wantsToMoveToPano(panoIndex: number, options: MovePanoOptions, userAction: boolean): void;
    webXRAxesUpdate(type: "left" | "right", param: WebXRAxesParams): void;
    webXRControllerEvent(type: WebXRControllerType, key:
        | "Y"
        | "X"
        | "A"
        | "B"
        | "RightTrigger"
        | "RightPinch"
        | "LeftTrigger"
        | "LeftPinch"
        | "LeftAxesLeft"
        | "LeftAxesRight"
        | "LeftAxesUp"
        | "LeftAxesDown"
        | "RightAxesLeft"
        | "RightAxesRight"
        | "RightAxesUp"
        | "RightAxesDown", params: WebXRControllerParams): void;
    webXRControllerRayUpdate(raycaster: {
        leftRay?: Raycaster;
        rightRay?: Raycaster;
    }): void;
    webXRSessionEnd(): void;
    webXRSessionStart(): void;
    willLoad(input: any, work: Work, state: Partial<State>): void;
    works.load(event: WorksEvent): void;
    works.ready(event: WorksEvent): void;
    works.request(event: WorksEvent): void;
    xr.controller.update(event: XRControllerEvent): void;
    xr.gesture.buttonDown(event: XRGestureEvent): void;
    xr.gesture.buttonUp(event: XRGestureEvent): void;
    xr.gesture.press(event: XRGestureEvent): void;
    xr.gesture.tap(event: XRGestureEvent): void;
    xr.session.end(event: XRSessionEvent): void;
    xr.session.start(event: XRSessionEvent): void;
}

Hierarchy (view full)

Methods

camera.update cameraDirectionUpdate cameraFovUpdate cameraPositionUpdate cameraUpdate currentState.change currentStateChange dblTapGesture dispose error fps gesture gesture.dbltap gesture.momentum gesture.mousemove gesture.mousewheel gesture.pan gesture.pinch gesture.press gesture.tap helpers.visible helpersVisibleChange initAnimation.end initAnimation.start initAnimationEnded initAnimationWillStart interiaPan intersect.update intersectionHidden intersectionOnModelUpdate load loaded mode.change mode.change.request modeChange model.changeShownFloor model.error model.load model.request modelLoadError modelLoaded modelShownFloorChange modelWillLoad models.load models.refined mouseWheel moveToPano moveToPanoCanceled movingToPano network network.resource panGesture pano.arrived pano.cancel pano.error pano.moveTo pano.moving pano.request pano.select pano.texture.abort pano.texture.error pano.texture.load pano.texture.progress pano.texture.success panoArrived panoLoadError panoLoaded panoSelected panoWillArrive panoWillLoad pinchGesture pressGesture render render.prepare renderFrame setState state.change state.set state.synced stateChange stateSynced tapGesture textureAbort textureError textureLoaded textureLoading textureStartLoad wantsChangeCameraFov wantsChangeMode wantsDblTapGesture wantsGesture wantsInteriaPan wantsMouseWheel wantsMoveToPano wantsPanGesture wantsPinchGesture wantsPressGesture wantsShowIntersectionOnModel wantsTapGesture wantsToMoveToPano webXRAxesUpdate webXRControllerEvent webXRControllerRayUpdate webXRSessionEnd webXRSessionStart willLoad works.load works.ready works.request xr.controller.update xr.gesture.buttonDown xr.gesture.buttonUp xr.gesture.press xr.gesture.tap xr.session.end xr.session.start

Methods

  • 相机改变

    Parameters

    Returns void

  • 相机姿态中相机方向变化

    Parameters

    • coordinates: Pick<Pose, "longitude" | "latitude">

      相机姿态的俯仰角和偏航角

    • userAction: boolean

      是否用户触发

    Returns void

  • 相机姿态中可视角度变化

    Parameters

    • fov: number

      相机的可视角度

    • userAction: boolean

      是否用户触发

    Returns void

  • 相机姿态中相机位置变化

    Parameters

    • offset: Vector3

      相机位置

    • userAction: boolean

      是否用户触发

    Returns void

  • 相机姿态变化

    Parameters

    • pose: Pose

      相机姿态

    • userAction: boolean

      是否用户触发

    Returns void

  • 当前 state 变化

    Parameters

    Returns void

  • 当前实时 state 变化时

    Parameters

    • state: State

      当前姿态状态

    • userAction: boolean

      是否用户触发

    Returns void

  • dbltap 手势(点击屏幕) 被触发

    Parameters

    • raycaster: Raycaster

      点击对应的三维射线

    • tapPosition: Vector2

      点击对应的屏幕位置

    • final: boolean

      是否手势结束

    Returns void

  • five 被析构。 插件中请监听用于自身析构

    Returns void

  • 内部错误

    Parameters

    • error: Error

    Returns void

  • 当前 fps 变化

    Parameters

    • fps: number

    Returns void

  • 手势 触发

    Parameters

    • type: GestureTypes

      手势类型

    • pointers: {
          delta?: number;
          x: number;
          y: number;
      }[]

      手指位置

    • final: boolean

      是否手势结束

    Returns void

  • 手势 双击屏幕

    Parameters

    Returns void

  • 手势 惯性

    Parameters

    Returns void

  • 手势 鼠标移动

    Parameters

    Returns void

  • 手势 鼠标滚轮

    Parameters

    Returns void

  • 手势 滑动屏幕

    Parameters

    Returns void

  • 手势 双指缩放

    Parameters

    Returns void

  • 手势 长按屏幕

    Parameters

    Returns void

  • 手势 点击屏幕

    Parameters

    Returns void

  • 改变 helpers 元素可见

    Parameters

    Returns void

  • 帮助元素显应的变换

    Parameters

    • visible: boolean

      帮助元素的是否开启

    Returns void

  • 模态切换动画 结束

    Parameters

    Returns void

  • 模态切换动画 开始

    Parameters

    Returns void

  • 模态间切换动画结束

    Parameters

    • panoIndex: number

      当前点位

    • pose: Pose

      相机姿态

    • userAction: boolean

      是否用户触发

    Returns void

  • 模态间切换动画开始

    Parameters

    • panoIndex: number

      当前点位

    • pose: Pose

      相机姿态

    • userAction: boolean

      是否用户触发

    Returns void

  • pan 手势(滑动屏幕) 的惯性运动

    Parameters

    • pose: Pose

      意图的相机姿态

    • final: boolean

      是否手势结束

    Returns void

  • Parameters

    Returns void

  • 鼠标焦点环被隐藏

    Returns void

  • 鼠标焦点环位置被重新计算

    Parameters

    • intersection: Intersection

      焦点碰撞结果

    • mesh: Object3D

      焦点环 mesh

    Returns void

  • 开始加载 Work 数据

    Parameters

    • input: any

      输入的 work

    • work: Work

      归一化的标准 work

    • state: Partial<State>

      加载时的姿态

    Returns void

  • 加载完 Work 数据

    Parameters

    • input: any

      输入的 work

    • work: Work

      归一化的标准 work

    Returns void

  • 改变 mode

    Parameters

    Returns void

  • 请求改变 mode

    Parameters

    Returns void

  • 模态切换完成

    Parameters

    • mode: Mode

      切换到的模态

    • prevMode: Mode

      上本质是一个模态

    • panoIndex: number

      初始化动画结束后的点位下标

    • toPose: Pose

      初始化动画结束后的状态

    • userAction: boolean

      是否用户触发

    Returns void

  • 当模型修改楼层

    Parameters

    Returns void

  • 当模型错误

    Parameters

    Returns void

  • 当模型修改楼层

    Parameters

    Returns void

  • 当模型加载

    Parameters

    Returns void

  • 模型加载错误

    Parameters

    • error: Error

      错误对象

    • model: Model

      加载完的 model

    Returns void

  • 模型加载完成

    Parameters

    • model: Model

      加载完的 model

    Returns void

  • 模型楼层切换

    Parameters

    • shownFloor: number

      模型楼层

    • floorLength: number

    Returns void

  • 模型开始加载

    Parameters

    • workModel: WorkModel

      归一化的标准 work 中的 model 值

    Returns void

  • 模型加载完成

    Parameters

    Returns void

  • 模型细化完成

    Parameters

    Returns void

  • 鼠标滚轮被触发

    Parameters

    • delta: number

      滚轮数值

    • fov: number

      意图的fov变更

    • final: boolean

      是否手势结束

    Returns void

  • 开始加载并移动到某个观察点位

    Parameters

    • panoIndex: number

      移动到的点位

    • userAction: boolean

      是否用户触发

    Returns void

    可 panoWillArrive 相比

    • moveToPano 在加载全景图资源前触发
    • panoWillArrive 在加载全景图资源后触发
  • 移动到某个观察点位被取消

    Parameters

    • panoIndex: number

      对应的点位

    Returns void

    这个有一些情况会导致

    • 移动过程中切换模态
    • 移动过程中 five 被析构
    • 移动过程点击切换到另一个点位
  • 移动中, 会告知移动状态(耗时百分比)

    Parameters

    • panoIndex: number

      将要移动到的点位下标

    • prevPanoIndex: number

      上一个点位下标

    • progress: number

      整个过程经度 [0-1]

    Returns void

  • 网络资源分析

    Parameters

    Returns void

  • 网络资源

    Parameters

    Returns void

  • pan 手势(滑动屏幕) 被触发

    Parameters

    • pose: Pose

      相机姿态

    • final: boolean

      是否手势结束

    Returns void

  • 运动到达点位

    Parameters

    Returns void

  • 取消运动点位

    Parameters

    Returns void

  • 运动点位出错

    Parameters

    Returns void

  • 运动去点位

    Parameters

    Returns void

  • 运动点位过程

    Parameters

    Returns void

  • 请求点位

    Parameters

    Returns void

  • 选择

    Parameters

    Returns void

  • 加载全景材质中止

    Parameters

    Returns void

  • 加载全景材质失败

    Parameters

    Returns void

  • 加载全景材质

    Parameters

    Returns void

  • 加载全景材质进度

    Parameters

    Returns void

  • 加载全景材质成功

    Parameters

    Returns void

  • 移动到某个观察点位

    Parameters

    • panoIndex: number

      移动到点位

    • pose: Pose

      相机姿态

    • userAction: boolean

      是否用户触发

    Returns void

  • 某个观察点的全景资源加载失败

    Parameters

    • error: Error

      错误对象

    • panoIndex: number

      对应的点位

    Returns void

  • 某个观察点的全景资源加载完成

    Parameters

    • panoIndex: number

      对应的点位

    Returns void

  • 观察点位被选择

    Parameters

    • panoIndex: number

      选择的点位

    Returns void

  • 开始移动到某个观察点位

    Parameters

    • panoIndex: number

      移动到点位

    • pose: Pose

      相机姿态

    • userAction: boolean

      是否用户触发

    Returns void

    和 moveToPano 相比

    • moveToPano 在加载全景图资源前触发
    • panoWillArrive 在加载全景图资源后触发
  • 开始加载某个观察点的全景资源

    Parameters

    • panoIndex: number

      移动到的点位

    Returns void

  • pinch 手势(双指缩放) 被触发

    Parameters

    • scale: number

      缩放数值

    • fov: number

      意图的fov变更

    • final: boolean

      是否手势结束

    Returns void

  • tap 手势(点击屏幕) 被触发

    Parameters

    • raycaster: Raycaster

      点击对应的三维射线

    • tapPosition: Vector2

      点击对应的屏幕位置

    • duration: number

      长按持续时间

    • final: boolean

      是否手势结束

    Returns void

  • 渲染后

    Parameters

    Returns void

  • 渲染前

    Parameters

    Returns void

  • 渲染循环

    Parameters

    • rendered: boolean

      是否渲染了

    Returns void

  • 当 setState 方法被调用

    Parameters

    • state: State

      当前姿态状态

    Returns void

  • 当 state 变化

    Parameters

    Returns void

  • 设置 state

    Parameters

    Returns void

  • 当 state 同步完成

    Parameters

    Returns void

  • 当目标 state 变化时

    Parameters

    • state: State

      当前姿态状态

    • userAction: boolean

      是否用户触发

    Returns void

  • 当 state 被同步完成时

    Parameters

    • state: State

      当前姿态状态

    Returns void

  • tap 手势(点击屏幕) 被触发

    Parameters

    • raycaster: Raycaster

      点击对应的三维射线

    • tapPosition: Vector2

      点击对应的屏幕位置

    • final: boolean

      是否手势结束

    Returns void

  • 观察点的全景资源加载被中止

    Parameters

    • panoIndex: number

      加载点位

    Returns void

  • 观察点的全景资源加载失败

    Parameters

    • error: Error

      错误对象

    • panoIndex: number

      加载点位

    Returns void

  • 观察点的全景资源加载完成

    Parameters

    Returns void

  • 观察点的全景资源加载中,可获取到进度

    Parameters

    • progress: number

      加载进度 [0-1]

    • panoIndex: number

      加载点位下标

    Returns void

  • 观察点的全景资源开始加载

    Parameters

    • panoIndex: number

      加载点位

    Returns void

  • 意图要变化相机的可视角度 可以通过 return false 阻止

    Parameters

    • fov: number

      意图要变化相机的可视角度

    Returns false | void

    可以通过 return false 阻止

    建议通过 初始化设置的 defaultFov, maxFov, minFov 来限制

  • 意图要切换到某个模态, 可以通过 return false 阻止

    Parameters

    • mode: Mode

      意图要切换到的模态

    • prevMode: Mode

      当前模态

    Returns false | void

    可以通过 return false 阻止

  • 意图要触发 dlbtap 手势(点击屏幕), 可以通过 return false 阻止

    Parameters

    • raycaster: Raycaster

      点击对应的三维射线

    • tapPosition: Vector2

      点击对应的屏幕位置

    • final: boolean

      是否手势结束

    Returns false | void

    可以通过 return false 阻止

  • 意图要触发手势, 可以通过 return false 阻止

    Parameters

    • type: GestureTypes

      手势类型

    • pointers: {
          delta?: number;
          x: number;
          y: number;
      }[]

      手指位置

    • final: boolean

      是否手势结束

    Returns false | void

    可以通过 return false 阻止

  • 意图要触发 pan 手势(滑动屏幕) 的惯性运动, 可以通过 return false 阻止

    Parameters

    • pose: Pose

      意图的相机姿态

    Returns false | void

    可以通过 return false 阻止

  • 意图要触发 鼠标滚轮 可以通过 return false 阻止

    Parameters

    • delta: number

      滚轮数值

    • nextFov: number

      意图的fov变更

    • final: boolean

      是否手势结束

    Returns false | void

    可以通过 return false 阻止

  • 意图要移动到某个点时, 可以通过 return false 阻止

    Parameters

    • panoIndex: number

      意图要移动到点位

    • options: MovePanoOptions

      移动参数

    • userAction: boolean

      是否用户触发

    Returns false | void

    可以通过 return false 阻止

  • 意图要触发 pan 手势(滑动屏幕), 可以通过 return false 阻止

    Parameters

    • pose: Pose

      意图的相机姿态

    • final: boolean

      是否手势结束

    Returns false | void

    可以通过 return false 阻止

  • 意图要触发 pinch 手势(双指缩放),可以通过 return false 阻止

    Parameters

    • scale: number

      缩放数值

    • nextFov: number

      意图的fov变更

    • final: boolean

      是否手势结束

    Returns false | void

    可以通过 return false 阻止

  • 意图要触发 press 手势(长按屏幕), 可以通过 return false 阻止

    Parameters

    • raycaster: Raycaster

      长按对应的三维射线

    • tapPosition: Vector2

      长按对应的屏幕位置

    • duration: number

      长按持续时间

    • final: boolean

      是否手势结束

    Returns false | void

    可以通过 return false 阻止

  • 意图要展示鼠标焦点环,可以通过 return false 阻止

    Parameters

    • raycaster: Raycaster

      射线

    Returns false | void

    可以通过 return false 阻止

  • 意图要触发 tap 手势(点击屏幕), 可以通过 return false 阻止

    Parameters

    • raycaster: Raycaster

      点击对应的三维射线

    • tapPosition: Vector2

      点击对应的屏幕位置

    • final: boolean

      是否手势结束

    Returns false | void

    可以通过 return false 阻止

  • 同 wantsMoveToPano

    Parameters

    • panoIndex: number

      意图要移动到点位

    • options: MovePanoOptions

      移动参数

    • userAction: boolean

      是否用户触发

    Returns void

    可以通过 return false 阻止

  • xr控制器的Axes原始实时数据状态

    Parameters

    Returns void

  • axes代表控制杆,axes数组的0-1元素分别代表左控制器的左(-1)右(1),左控制器的上(-1)下(1),axes数组的2-3元素同理

    Parameters

    • type: WebXRControllerType
    • key:
          | "Y"
          | "X"
          | "A"
          | "B"
          | "RightTrigger"
          | "RightPinch"
          | "LeftTrigger"
          | "LeftPinch"
          | "LeftAxesLeft"
          | "LeftAxesRight"
          | "LeftAxesUp"
          | "LeftAxesDown"
          | "RightAxesLeft"
          | "RightAxesRight"
          | "RightAxesUp"
          | "RightAxesDown"
    • params: WebXRControllerParams

    Returns void

  • xr控制器的控制器射线更新

    Parameters

    • raycaster: {
          leftRay?: Raycaster;
          rightRay?: Raycaster;
      }
      • OptionalleftRay?: Raycaster
      • OptionalrightRay?: Raycaster

    Returns void

  • webXR模式结束,webxr session销毁

    Returns void

  • webXR模式开始,webxr session完成坐标系矫正

    Returns void

  • 准备加载 Work 数据

    Parameters

    • input: any

      输入的 work

    • work: Work

      归一化的标准 work

    • state: Partial<State>

      加载时的姿态

    Returns void

  • 加载 work

    Parameters

    Returns void

  • 加载 work 并 controller ready

    Parameters

    Returns void

  • 请求 work数据

    Parameters

    Returns void

  • XR手柄更新

    Parameters

    Returns void

  • XR 手势(按钮)

    Parameters

    Returns void

  • XR 手势(按钮)

    Parameters

    Returns void

  • XR 手势(按钮)

    Parameters

    Returns void

  • XR 手势(按钮)

    Parameters

    Returns void

  • XR 退出

    Parameters

    Returns void

  • XR 进入

    Parameters

    Returns void