1. package
  2. {
  3. import away3d.cameras.HoverCamera3D;
  4. import away3d.core.base.Mesh;
  5. import away3d.lights.AmbientLight3D;
  6. import away3d.lights.PointLight3D;
  7. import mx.core.Application;
  8.  
  9. public class ApplicationManager extends BaseObject
  10. {
  11. protected var light:MeshObject = null;
  12. protected var light2:MeshObject = null;
  13. protected var totalTime:Number = 0;
  14. protected var hoverCamera:HoverCamera3D = null;
  15.  
  16. public function ApplicationManager()
  17. {
  18. super();
  19. }
  20.  
  21. public function startupApplicationManager(engineManager:EngineManager):ApplicationManager
  22. {
  23. super.startupBaseObject(engineManager);
  24.  
  25. var lantern:Lantern = new Lantern();
  26. var mesh:Mesh = lantern.meshes[0];
  27. engineManager.MyResourceManager.startupResourceManagerEx(mesh);
  28. mesh.material = engineManager.MyResourceManager.LanternTex;
  29. mesh.y = -2.5;
  30.  
  31. new MeshObject().startupObject3DMeshObject(engineManager, mesh);
  32.  
  33. hoverCamera = new HoverCamera3D({focus:50, distance:1, mintiltangle:-90, target:mesh});
  34. engineManager.view.camera = hoverCamera;
  35.  
  36. new MeshObject().startupObject3DMeshObject(engineManager, new AmbientLight3D({color: 0x100720}));
  37.  
  38. light = new MeshObject().startupObject3DMeshObject(engineManager, new PointLight3D({color: 0x338055, debug: false}));
  39. light2 = new MeshObject().startupObject3DMeshObject(engineManager, new PointLight3D({color: 0xeb9134, debug: false}));
  40. light2.model.x = 2;
  41.  
  42. return this;
  43. }
  44.  
  45. public override function enterFrame(dt:Number):void
  46. {
  47. totalTime += dt;
  48.  
  49. light.model.x = Math.sin(totalTime * Math.PI/2) * 10;
  50. light.model.z = Math.cos(totalTime * Math.PI/2) * 10;
  51.  
  52. light2.model.y = Math.cos(totalTime * Math.PI/3) * 20;
  53. light2.model.z = Math.sin(totalTime * Math.PI/3) * 10;
  54.  
  55. this.hoverCamera.targetpanangle = Application.application.sliderPanAngle.value;
  56. this.hoverCamera.targettiltangle = Application.application.sliderTiltAngle.value;
  57.  
  58. hoverCamera.hover();
  59. }
  60.  
  61. public override function shutdown():void
  62. {
  63. super.shutdown();
  64. }
  65. }
  66. }