- package
- {
- import away3dlite.containers.ObjectContainer3D;
- import away3dlite.core.base.Mesh;
- import away3dlite.core.utils.*;
- import away3dlite.loaders.*;
- import away3dlite.materials.*;
- import away3dlite.primitives.*;
- import away3dlite.templates.*;
- import gs.TweenMax;
- import gs.easing.Linear;
- public class ApplicationManager extends BasicTemplate
- {
- [Embed(source="../media/terrain.3ds", mimeType="application/octet-stream")]
- protected static const Terrain:Class;
- [Embed(source="../media/terrain.jpg")]
- protected static const TerrainTex:Class;
- [Embed(source="../media/Messerschmitt_Bf_109.mqo", mimeType="application/octet-stream")]
- protected static const Plane:Class;
- [Embed(source="../media/Messerschmitt_Bf_109.jpg")]
- protected static const PlaneTex:Class;
- protected var container2:ObjectContainer3D = null;
- protected var terrain1:Mesh = null;
- protected var terrain2:Mesh = null;
- override protected function onInit():void
- {
- var max3ds:Max3DS = new Max3DS();
- var container:ObjectContainer3D = max3ds.parseGeometry(new Terrain()) as ObjectContainer3D;
- terrain1 = container.getChildAt(0) as Mesh;
- terrain1.material = new BitmapMaterial(Cast.bitmap(TerrainTex));
- terrain1.rotationX = -90;
- terrain1.y = 500;
- terrain1.scaleZ = 0.5;
- terrain2 = terrain1.clone() as Mesh;
- terrain2.z = 1000;
- var mqo:MQO = new MQO();
- mqo.scaling = 0.4;
- container2 = mqo.parseGeometry(new Plane()) as ObjectContainer3D;
- for each (var mesh:Mesh in container2.children)
- mesh.material = new BitmapMaterial(Cast.bitmap(PlaneTex));
- container2.rotationY = 180;
- container2.y = 300;
- container2.z = -500;
- this.camera.rotationX = -30;
- scene.addChild(container2);
- scene.addChild(terrain1);
- scene.addChild(terrain2);
- moveLeft();
- }
- /**
- * @inheritDoc
- */
- override protected function onPreRender():void
- {
- terrain1.z -= 10;
- if (terrain1.z <= -1000)
- terrain1.z = 1000;
- terrain2.z -= 10;
- if (terrain2.z <= -1000)
- terrain2.z = 1000;
- }
- protected function moveLeft():void
- {
- TweenMax.to(container2, 4, {x:-100, ease:Linear.easeInOut, onComplete:moveRight, delay:1});
- TweenMax.to(container2, 2, {rotationZ:-30, ease:Linear.easeNone, yoyo:1, delay:1});
- }
- protected function moveRight():void
- {
- TweenMax.to(container2, 4, {x:100, ease:Linear.easeInOut, onComplete:moveLeft, delay:1});
- TweenMax.to(container2, 2, {rotationZ:30, ease:Linear.easeNone, yoyo:1, delay:1});
- }
- }
- }