a3js API Documentation - v0.0.34
    Preparing search index...

    Interface Controller

    キーやマウスなどの様々なイベントを受け取り ナビゲーションなどを行うコントローラのインターフェース。

    a3.Windowやa3.Canvasなどのa3.Viewにセットして使う。 a3.Viewの方で発生した色々なイベントを受け取ることが 可能でそれに応答して様々な処理を行わせるための基盤。

    update()メソッド内のプログラムでは様々な処理を書いて 良いのだが、カメラの位置、回転、拡大縮小をする 時には注意が必要。例えばカメラの位置を変更する 場合はthis.view.camera.object.position.set()や this.view.camera.setLocation()ではなく、 this.view.camera.transformer.setLocation()を

    このControllerインタフェースのupdate()以外の メソッドでは基本的に外部に影響を及ぼす処理は 書かないようにしておき、update()の中で外部に 影響を及ぼすプログラムを書くようにして下さい。 特に、位置、回転、拡大縮小をセットするメソッド (例: setCameraLoc)があるが、これはCameraの インタンスのメソッド(例:camera.setLocation()) から呼び出される。このメソッド内ではtransformer 同様に、直接カメラに操作を加えてはならず、 一旦このController内の情報として要求を 保存しておき、update()メソッドが呼ばれた時に、 this.view.camera.transformer.setLocation()など で反映させる必要がある。(GAHA: もう少しわかり やすい仕様に改善したいけど・・・)

    interface Controller {
        view?: View;
        activate(): void;
        deactivate(): void;
        keyDown(event: KeyboardEvent): void;
        keyPress(event: KeyboardEvent): void;
        keyUp(event: KeyboardEvent): void;
        mouseClick(event: MouseEvent): void;
        mouseDown(event: MouseEvent): void;
        mouseEnter(event: MouseEvent): void;
        mouseLeave(event: MouseEvent): void;
        mouseMove(event: MouseEvent): void;
        mouseUp(event: MouseEvent): void;
        mouseWheel(event: WheelEvent): void;
        setCameraLocation(loc: Vec3): void;
        setCameraLocationNow(loc: Vec3): void;
        setCameraQuat(quat: Quat): void;
        setCameraQuatNow(quat: Quat): void;
        setCameraScale(scale: Vec3): void;
        setCameraScaleNow(scale: Vec3): void;
        setView(view: View): void;
        touchCancel(event: TouchEvent): void;
        touchEnd(event: TouchEvent): void;
        touchMove(event: TouchEvent): void;
        touchStart(event: TouchEvent): void;
        update(dt: number): void;
    }

    Implemented by

    Index

    Properties

    view?: View

    Methods