forked from: PV3D 習作1
clockmakerさんのブログやコードを参考にさせてもらいました。
マウスドラッグで立方体が回転します。
♥0 |
Line 50 |
Modified 2009-05-22 16:37:14 |
MIT License
archived:2017-03-20 14:41:58
ActionScript3 source code
/**
* Copyright Renowan ( http://wonderfl.net/user/Renowan )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/xujS
*/
// forked from CHAOSLAVE's PV3D 習作1
//clockmakerさんのブログやコードを参考にさせてもらいました。
//マウスドラッグで立方体が回転します。
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.materials.WireframeMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.view.BasicView;
public class Main extends MovieClip {
private var isMouseDownFlag:Boolean;
private var world:BasicView;
private var material:WireframeMaterial;
private var obj:Cube;
private var preMouseX:Number;
private var preMouseY:Number;
public function Main() {
world = new BasicView();
addChild(world);
world.startRendering();
material = new WireframeMaterial(0x0000FF);
material.doubleSided = true;
obj = new Cube(new MaterialsList({all : material}), 500, 500, 500, 10, 10, 10);
world.scene.addChild(obj);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mouse_down);
}
private function mouse_down(event:MouseEvent):void {
isMouseDownFlag = true;
preMouseX = event.stageX;
preMouseY = event.stageY;
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouse_move);
stage.addEventListener(MouseEvent.MOUSE_UP, mouse_up);
}
private function mouse_up(event:MouseEvent):void {
isMouseDownFlag = false;
stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouse_move);
stage.removeEventListener(MouseEvent.MOUSE_UP, mouse_up);
}
private function mouse_move(event:MouseEvent):void {
var differenceX:Number = event.stageX - preMouseX;
var differenceY:Number = event.stageY - preMouseY;
if (isMouseDownFlag) {
obj.rotationX += differenceY;
obj.rotationY += differenceX;
preMouseX = event.stageX;
preMouseY = event.stageY;
}
}
}
}