- package
- {
- import away3dlite.cameras.HoverCamera3D;
- import away3dlite.core.base.Mesh;
- import away3dlite.core.utils.*;
- import away3dlite.events.MouseEvent3D;
- import away3dlite.loaders.*;
- import away3dlite.materials.*;
- import away3dlite.primitives.*;
- import away3dlite.templates.*;
- import gs.TweenMax;
- import mx.core.Application;
- public class ApplicationManager extends BasicTemplate
- {
- [Embed(source="../media/texture.jpg")]
- protected static const Tex1:Class;
- protected var mesh:Mesh = null;
- protected var texture:BitmapMaterial = null;
- protected var hoverCamera:HoverCamera3D = null;
- override protected function onInit():void
- {
- texture = new BitmapMaterial(Cast.bitmap(Tex1));
- texture.smooth = true;
- hoverCamera = new HoverCamera3D(10, 100, mesh, 1000);
- view.camera = hoverCamera;
- this.debug = false;
- this.useHandCursor = false;
- createCone();
- }
- /**
- * @inheritDoc
- */
- override protected function onPreRender():void
- {
- hoverCamera.zoom = mx.core.Application.application.sliderZoom.value;
- hoverCamera.tiltAngle = mx.core.Application.application.sliderTilt.value;
- hoverCamera.panAngle = mx.core.Application.application.sliderPan.value;
- hoverCamera.hover();
- view.fireMouseEvent(MouseEvent3D.MOUSE_MOVE);
- }
- protected function mouseOver(event:MouseEvent3D):void
- {
- if (mesh != null)
- {
- TweenMax.killAllTweens();
- TweenMax.to(mesh, 1, {scaleX:2, scaleY:2, scaleZ:2, yoyo:0});
- }
- }
- protected function mouseOut(event:MouseEvent3D):void
- {
- if (mesh != null)
- {
- TweenMax.killAllTweens();
- TweenMax.to(mesh, 1, {scaleX:1, scaleY:1, scaleZ:1});
- }
- }
- public function updateModel():void
- {
- switch (Application.application.cmbModel.text)
- {
- case "Cone":
- createCone();
- break;
- case "Cube6":
- createCube();
- break;
- case "Cylinder":
- createCylinder();
- break;
- case "Plane":
- createPlane();
- break;
- case "Sphere":
- createSphere();
- break;
- case "Torus":
- createTorus();
- break;
- }
- }
- protected function removeMesh():void
- {
- if (mesh != null)
- {
- scene.removeChild(mesh);
- mesh.removeEventListener(MouseEvent3D.MOUSE_OVER, mouseOver);
- mesh.removeEventListener(MouseEvent3D.MOUSE_OUT, mouseOut);
- mesh = null;
- }
- }
- protected function addMesh():void
- {
- scene.addChild(mesh);
- mesh.addEventListener(MouseEvent3D.MOUSE_OVER, mouseOver);
- mesh.addEventListener(MouseEvent3D.MOUSE_OUT, mouseOut);
- }
- protected function createCube():void
- {
- removeMesh();
- mesh = new Cube6(texture, 10, 10, 10);
- addMesh();
- }
- protected function createCone():void
- {
- removeMesh();
- mesh = new Cone(texture, 10, 20, 8, 1, false);
- addMesh();
- }
- protected function createCylinder():void
- {
- removeMesh();
- mesh = new Cylinder(texture, 10, 20, 8, 1, false);
- addMesh();
- }
- protected function createPlane():void
- {
- removeMesh();
- mesh = new Plane(texture, 10, 10, 1, 1, false);
- addMesh();
- }
- protected function createSphere():void
- {
- removeMesh();
- mesh = new Sphere(texture, 10);
- addMesh();
- }
- protected function createTorus():void
- {
- removeMesh();
- mesh = new Torus(texture, 10, 4, 8, 6, false);
- addMesh();
- }
- }
- }