/src/MinkoExampleApplication.as
ActionScript | 89 lines | 72 code | 17 blank | 0 comment | 1 complexity | 6aa6d4d81de69df0544faad9eb755e2c MD5 | raw file
1package
2{
3 import aerys.minko.render.Viewport;
4 import aerys.minko.scene.controller.camera.ArcBallController;
5 import aerys.minko.scene.node.Scene;
6 import aerys.minko.scene.node.camera.Camera;
7 import aerys.monitor.Monitor;
8
9 import flash.display.Sprite;
10 import flash.events.Event;
11 import flash.geom.Point;
12
13 public class MinkoExampleApplication extends Sprite
14 {
15 private var _viewport : Viewport = new Viewport();
16 private var _camera : Camera = null;
17 private var _cameraController : ArcBallController = null;
18
19 private var _scene : Scene = new Scene();
20
21 private var _cursor : Point = new Point();
22
23 protected function get viewport() : Viewport
24 {
25 return _viewport;
26 }
27
28 protected function get camera() : Camera
29 {
30 return _camera;
31 }
32
33 protected function get cameraController() : ArcBallController
34 {
35 return _cameraController;
36 }
37
38 protected function get scene() : Scene
39 {
40 return _scene;
41 }
42
43 public function MinkoExampleApplication()
44 {
45 if (stage)
46 initialize();
47 else
48 addEventListener(Event.ADDED_TO_STAGE, initialize);
49 }
50
51 private function initialize(event : Event = null) : void
52 {
53 removeEventListener(Event.ADDED_TO_STAGE, initialize);
54
55 stage.addChildAt(_viewport, 0);
56 _viewport.backgroundColor = 0x666666ff;
57
58 initializeScene();
59 initializeUI();
60
61 stage.frameRate = 60;
62 stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
63 }
64
65 protected function initializeScene() : void
66 {
67 _camera = new Camera();
68 _cameraController = new ArcBallController();
69 _cameraController.bindDefaultControls(stage);
70 _cameraController.minDistance = 1;
71 _cameraController.yaw = Math.PI * -.5;
72 _cameraController.pitch = Math.PI / 2;
73 _cameraController.distance = 5;
74 camera.addController(_cameraController);
75
76 _scene.addChild(camera);
77 }
78
79 protected function initializeUI() : void
80 {
81 stage.addChild(Monitor.monitor.watch(_scene, ['numDescendants', 'numTriangles', 'numPasses']));
82 }
83
84 protected function enterFrameHandler(event : Event) : void
85 {
86 _scene.render(_viewport);
87 }
88 }
89}