Im trying to set up a 3d cube interface with away 3d but i don’t really know how to use away 3d. i have the cube and it rotates with the mouse drag. the problem is that when first clicked the cube jumps to a new rotation before the dragging starts. any ideas how i can stop it from doing that.
Thanks!!
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.display.Bitmap;
import com.greensock.*;
import com.greensock.easing.*;
import com.greensock.events.*;
import com.greensock.loading.*;
import com.greensock.plugins.*;
import away3d.cameras.*;
import away3d.containers.View3D;
import away3d.primitives.Cube;
import away3d.materials.BitmapMaterial;
import away3d.core.utils.Cast;
import flash.events.MouseEvent;
public class CreateCube01 extends Sprite {
private var viewport:View3D;
private var cube:Cube;
private var tray:Tray = new Tray;
private var slider:SliderStill = new SliderStill;
private var camera:HoverCamera3D;
[Embed (source="metal.jpg")] private var myTexture:Class;
private var myBitmap:Bitmap = new myTexture();
public function CreateCube01() {
camera = new HoverCamera3D({zoom:2, focus:100, distance:250});
viewport = new View3D({x:400, y:400});
addChild(viewport);
addChild(tray);
addChild(slider);
tray.x = 65;
tray.y = 569;
slider.x = 630;
slider.y = 240;
var myMaterial:BitmapMaterial = new BitmapMaterial(Cast.bitmap(myBitmap));
cube = new Cube({width:200, height:200, depth:200, material:myMaterial});
viewport.scene.addChild(cube);
render();
viewport.addEventListener(MouseEvent.MOUSE_DOWN, onDown);
viewport.addEventListener(MouseEvent.MOUSE_UP, onUp);
}
private function onDown(e:MouseEvent):void {
this.addEventListener(Event.ENTER_FRAME, renderThis);
}
private function onUp(e:MouseEvent):void {
this.removeEventListener(Event.ENTER_FRAME, renderThis);
}
private function render(){
cube.rotationX =1;
cube.rotationY =15;
cube.rotationZ =1;
viewport.camera.moveTo(cube.x,cube.y,cube.z);
viewport.camera.moveBackward(500);
viewport.render();
}
private function renderThis(e:Event):void {
viewport.camera.moveTo(cube.x,cube.y,cube.z);
viewport.camera.rotationY=mouseX;
viewport.camera.rotationX=mouseY;
viewport.camera.moveBackward(500);
viewport.render();
}
}
}