キューブをマウスで回転させる

こんにちは!
Papervision3Dが面白くてしょうがありません!

少しずつ色々作れるようになってきましたし、先輩方が書いたコードが読めるようになって来ました。

っということで、今日はキューブをマウスでグリグリ動かすサンプルを作ってみました。
マウスのホイールを動かすと、キューブが拡大or縮小します。


◆イベントの追加

イベントはstageに対して追加する必要があります。

stage.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel);
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
stageを省略すると、親クラスのBasicViewクラスへのイベントとして登録されるようです。(ちょっと自信がありません。)
そのため、オブジェクトにマウスカーソルがあればイベントが発生しますが、背景にあたる部分ではイベントが発生しません。
ここで、結構悩みました。


◆カメラの移動

グリグリ動かすために、カメラを移動します。
Camera3Dクラスに実装されているorbit関数を利用すると、任意の点から同距離の範囲でカメラを回転させることができます。
地球を周っている衛星を、自由に操れるようなイメージです。

orbit(pitch:Number, yaw:Number, useDegrees:Boolean = true, target:DisplayObject3D = null)

【引数の説明】
pitch ― 上下の回転角度
yaw ― 左右の回転角度
useDegrees - trueを指定すると、pitchとyawが角度での指定となります
target - 回転の際の中心となるオブジェクト

◆カメラのズーム

ホイールでオブジェクトを拡大・縮小するには、Camera3Dの親クラスにあたるCameraObject3Dクラスのzoomプロパティを利用します。
マウスイベントのスクロール行数を引数に指定することで、ホイールと連動してズームできます。