- package
- {
- import away3d.containers.ObjectContainer3D;
- import away3d.sprites.DofSprite2D;
- import away3d.core.utils.Cast;
- import away3d.core.utils.DofCache;
- import mx.collections.ArrayCollection;
- import flash.display.BlendMode;
- public class ApplicationManager extends BaseObject
- {
- protected static const ELEMENT_COUNT:int = 50;
- protected static const ELEMENT_SPEED:Number = 5;
- protected var electrons:ArrayCollection = new ArrayCollection();
- public function ApplicationManager()
- {
- super();
- }
- public function startupApplicationManager(engineManager:EngineManager):ApplicationManager
- {
- super.startupBaseObject(engineManager);
- this.engineManager.cam.z = -1500;
- DofCache.aperture = 100;
- DofCache.usedof = true;
- DofCache.maxblur = 50;
- DofCache.focus = 1500;
- for (var i:int=0; i < ELEMENT_COUNT; ++i)
- {
- var proton:DofSprite2D = new DofSprite2D(Cast.bitmap(ResourceManager.Red));
- proton.x = 180;
- proton.ownCanvas = true;
- proton.blendMode = BlendMode.DIFFERENCE;
- var neutron:DofSprite2D = new DofSprite2D(Cast.bitmap(ResourceManager.Blue));
- neutron.x = -180;
- neutron.ownCanvas = true;
- neutron.blendMode = BlendMode.DIFFERENCE;
- var nucleicContainer:ObjectContainer3D = new ObjectContainer3D(proton, neutron);
- nucleicContainer.rotationX = i*360/ELEMENT_COUNT;
- nucleicContainer.rotationY = i*200/6;
- nucleicContainer.rotationZ = i*180/ELEMENT_COUNT;
- new MeshObject().startupObject3DMeshObject(this.engineManager, nucleicContainer);
- var electron:DofSprite2D = new DofSprite2D(Cast.bitmap(ResourceManager.Green));
- electron.y = 500;
- electron.ownCanvas = true;
- electron.blendMode = BlendMode.DIFFERENCE;
- var electronContainer:ObjectContainer3D = new ObjectContainer3D(electron);
- electronContainer.rotationX = i*360/ELEMENT_COUNT;
- electronContainer.rotationY = i*360/6;
- electronContainer.rotationZ = i*180/ELEMENT_COUNT;
- this.electrons.addItem(electronContainer);
- new MeshObject().startupObject3DMeshObject(this.engineManager, electronContainer);
- }
- return this;
- }
- public override function shutdown():void
- {
- super.shutdown();
- }
- public override function enterFrame(dt:Number):void
- {
- for each (var electronContainer:ObjectContainer3D in electrons)
- electronContainer.rotationX += ELEMENT_SPEED;
- }
- }
- }