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);

}

Reply via email to