package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import away3d.containers.ObjectContainer3D; import away3d.containers.View3D; import away3d.debug.AwayStats; import away3d.entities.Mesh; import away3d.events.ResourceEvent; import away3d.loading.ResourceManager; import away3d.materials.BitmapMaterial; [SWF(frameRate="60", width="720", height="480")] public class MolehillObjAway3D extends Sprite { //---------------------------------------------------------- // // Constructor // //---------------------------------------------------------- public function MolehillObjAway3D() { if (stage) addedToStageHanlder(); else addEventListener(Event.ADDED_TO_STAGE, addedToStageHanlder); } //---------------------------------------------------------- // // Property // //---------------------------------------------------------- [Embed(source="/assets/image.png")] private var ImageCls:Class; [Embed(source="/assets/box.obj", mimeType="application/octet-stream")] private var OBJ:Class; private var container:ObjectContainer3D; private var view:View3D; //---------------------------------------------------------- // // Function // //---------------------------------------------------------- private function addedToStageHanlder(event:Event = null):void { view = new View3D(); view.camera.z = -600; this.addChild(view); this.addEventListener(Event.ENTER_FRAME, enterFrameHandler); ResourceManager.instance.addEventListener(ResourceEvent.RESOURCE_RETRIEVED, resourceRetrievedHandler); container = ObjectContainer3D(ResourceManager.instance.parseData(new OBJ(), "box", true)); container.scale(1); view.scene.addChild(container); stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; addChild(new AwayStats(view)); } private function resourceRetrievedHandler(event:ResourceEvent):void { var material:BitmapMaterial = new BitmapMaterial(new ImageCls().bitmapData); Mesh(container.getChildAt(0)).material = material } private function enterFrameHandler(ev:Event):void { container.rotationX += 1; container.rotationY += 1; view.render(); } } }