Hello
I would like to have exactly the same result with Camera3D.
Help ;O
thanx
// import core library
import away3d.core.scene.*;
// import file format loaders
import away3d.loaders.*;
//import math objects
import away3d.core.math.*;
//
import away3d.cameras.*;
// create a 3D-viewport
var camera = new HoverCamera3D({zoom:3, focus:200, distance:1000});
// create a 3D-viewport
camera.tiltangle = 40;
camera.targettiltangle = 40;
camera.mintiltangle = 20;
camera.maxtiltangle = 50;
camera.yfactor = 1;
camera.steps = 7;
var view:View3D = new View3D({camera:camera, x:300, y:200});
// add viewport to the stage
addChild(view);
// start mesh loading
var loader:Object3DLoader = Obj.load("resources/turtle.obj",
{material:"turtle_texture", name:"turtle", scaling:0.1, y:50, x:10, z:
10, loadersize:300});
// add the loader object to the scene
view.scene.addChild(loader);
//
camera.update();
loader.rotationX = -90;
//
var rotCamera:Boolean = false;
var lastMouseX:Number = mouseX;
var lastMouseY:Number = mouseY;
var firstClick:Boolean = true;
//
addEventListener(Event.ENTER_FRAME, onEnterFrame);
function onEnterFrame(event:Event):void {
//
if (rotCamera) {
if (firstClick == true) {
firstClick = false;
lastMouseX = view.mouseX;
lastMouseY = view.mouseY;
trace("frist click");
}
//
var dragX = (view.mouseX - lastMouseX);
var dragY = (view.mouseY - lastMouseY);
//
lastMouseX = view.mouseX;
lastMouseY = view.mouseY;
//
camera.targetpanangle += dragX;
camera.targettiltangle += dragY
camera.hover();
} else {
//
}
// rerender viewport on each frame
view.render();
}
var hit:MovieClip = new MovieClip();
hit.graphics.beginFill(0xFF0000);
hit.graphics.drawRect(0, 0, 500, 600);
hit.graphics.endFill();
addChild(hit);
hit.alpha = 0;
hit.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
function mouseDownHandler(evt:MouseEvent):void {
rotCamera = true;
}
hit.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
function mouseUpHandler(evt:MouseEvent):void {
rotCamera = false;
firstClick = true;
}
hit.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseEvent);
function onMouseEvent(event:MouseEvent):void {
trace(camera.zoom);
var dir = (event.delta > 0) ? .5 : -.5;
camera.zoom = Math.max(2, Math.min(8, (camera.zoom+dir)));
//camera.distanceTo(-40);
}