/src/aerys/minko/example/core/teapots/TeapotsExample.as
ActionScript | 59 lines | 45 code | 14 blank | 0 comment | 1 complexity | 254bed1cb39aff37f31243468026b9fc MD5 | raw file
1package aerys.minko.example.core.teapots
2{
3 import aerys.minko.example.core.cubes.NormalsShader;
4 import aerys.minko.render.Effect;
5 import aerys.minko.render.geometry.Geometry;
6 import aerys.minko.render.geometry.primitive.TeapotGeometry;
7 import aerys.minko.render.material.Material;
8 import aerys.minko.scene.node.Mesh;
9 import aerys.monitor.Monitor;
10
11 import flash.events.Event;
12 import flash.utils.getTimer;
13
14
15 public class TeapotsExample extends MinkoExampleApplication
16 {
17 private static const MATERIAL : Material = new Material(new Effect(new NormalsShader()));
18 private static const TARGET_FPS : Number = 30;
19 private static const GEOMETRY : Geometry = new TeapotGeometry(17);
20
21 private var _lastTime : int = 0;
22
23 override protected function initializeScene() : void
24 {
25 super.initializeScene();
26
27 viewport.backgroundColor = 0;
28
29 _lastTime = getTimer();
30 }
31
32 override protected function enterFrameHandler(event : Event) : void
33 {
34 var time : int = getTimer();
35
36 if (Monitor.monitor.framerate > TARGET_FPS)
37 addTeapot();
38
39 _lastTime = time;
40
41 super.enterFrameHandler(event);
42 }
43
44 private function addTeapot() : void
45 {
46 var teapot : Mesh = new Mesh(GEOMETRY, MATERIAL);
47
48 teapot.transform
49 .appendUniformScale(0.03)
50 .appendTranslation(
51 -1 + Math.random() * 2,
52 -1 + Math.random() * 2,
53 -1 + Math.random() * 2
54 );
55
56 scene.addChild(teapot);
57 }
58 }
59}