如视 Five SDK
    Preparing search index...

    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;
        modelLoaded(model: Model): void;
        modelLoadError(error: Error, model: Model): void;
        "models.load"(event: ModelSceneEvent): void;
        "models.refined"(event: ModelSceneEvent): void;
        modelShownFloorChange(shownFloor: number, floorLength: number): void;
        modelWillLoad(workModel: WorkModel): 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;
        panoLoaded(panoIndex: number): void;
        panoLoadError(error: Error, 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"
                | "B"
                | "A"
                | "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 Summary)

    Index

    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 modelLoaded modelLoadError models.load models.refined modelShownFloorChange modelWillLoad 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 panoLoaded panoLoadError 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

      • 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

    • 改变 helpers 元素可见

      Parameters

      Returns void

    • 帮助元素显应的变换

      Parameters

      • visible: boolean

        帮助元素的是否开启

      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

    • 鼠标焦点环被隐藏

      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

      • model: Model

        加载完的 model

      Returns void

    • 模型加载错误

      Parameters

      • error: Error

        错误对象

      • model: Model

        加载完的 model

      Returns void

    • 模型加载完成

      Parameters

      Returns void

    • 模型细化完成

      Parameters

      Returns void

    • 模型楼层切换

      Parameters

      • shownFloor: number

        模型楼层

      • floorLength: number

      Returns void

    • 模型开始加载

      Parameters

      • workModel: WorkModel

        归一化的标准 work 中的 model 值

      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

      • panoIndex: number

        移动到点位

      • pose: Pose

        相机姿态

      • userAction: boolean

        是否用户触发

      Returns void

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

      Parameters

      • panoIndex: number

        对应的点位

      Returns void

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

      Parameters

      • error: Error

        错误对象

      • 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"
            | "B"
            | "A"
            | "RightTrigger"
            | "RightPinch"
            | "LeftTrigger"
            | "LeftPinch"
            | "LeftAxesLeft"
            | "LeftAxesRight"
            | "LeftAxesUp"
            | "LeftAxesDown"
            | "RightAxesLeft"
            | "RightAxesRight"
            | "RightAxesUp"
            | "RightAxesDown"
      • params: WebXRControllerParams

      Returns void

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

      Parameters

      • raycaster: { leftRay?: Raycaster; rightRay?: 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