package { import away3d.containers.View3D; import away3d.debug.AwayStats; import away3d.materials.BitmapMaterial; import away3d.materials.methods.EnvMapMethod; import away3d.materials.utils.CubeMap; import away3d.primitives.Cube; import away3d.primitives.SkyBox; import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.net.URLRequest; import flash.system.LoaderContext; public class Main extends Sprite { private var index:Number = -1 private var bmps:Array = ['posx.jpg', 'negx.jpg', 'posy.jpg', 'negy.jpg', 'posz.jpg', 'negz.jpg', 'lulipofa.jpg'] private var view:View3D private var cube:Cube private var cubeMaterial:BitmapMaterial private var cubeMap:CubeMap private var envMapMethod:EnvMapMethod private var context:LoaderContext = new LoaderContext(true); public function Main():void { preload() } private function preload(e:Event = null):void { if (e) bmps[index] = e.target.content['bitmapData'] if (++index != bmps.length) { var l:Loader = new Loader() l.contentLoaderInfo.addEventListener(Event.COMPLETE, preload) l.load(new URLRequest(bmps[index]),context) } else init() } private function init(e:Event = null):void { stage.align = 'TL' stage.scaleMode = 'noScale' addChild(view = new View3D()) view.antiAlias = 2 view.scene.addChild(new SkyBox(cubeMap = new CubeMap(bmps[0], bmps[1], bmps[2], bmps[3], bmps[4], bmps[5]))) view.scene.addChild( cube = new Cube(cubeMaterial = new BitmapMaterial(bmps[6]), 200, 200, 200, 1, 1, 1, false)) cubeMaterial.addMethod(envMapMethod = new EnvMapMethod(cubeMap)) envMapMethod.alpha = .5 addChild(new AwayStats(view, true, true)) new HoverDragController(view.camera, stage) addEventListener(Event.ENTER_FRAME, view.render ) stage.addEventListener(Event.RESIZE, onStageResize) if(stage.allowsFullScreen) stage.addEventListener(MouseEvent.DOUBLE_CLICK, onDoubleClick) } private function onDoubleClick(e:MouseEvent):void { stage.displayState = (stage.displayState == 'normal')?'fullScreen':'normal' } private function onStageResize(e:Event):void { view.width = stage.stageWidth; view.height = stage.stageHeight } } }