ufk

anoter try for away3d

ufk
Jul 24th, 2012
309
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.xpogames.Test01 {
  2.     import away3d.animators.transitions.CrossfadeStateTransition;
  3.     import away3d.controllers.HoverController;
  4.     import away3d.events.LoaderEvent;
  5.     import away3d.loaders.parsers.AWD2Parser;
  6.     import flash.ui.Keyboard;
  7.     import flash.events.KeyboardEvent;
  8.     import away3d.animators.AnimationStateBase;
  9.     import away3d.animators.SkeletonAnimationState;
  10.     import away3d.animators.data.Skeleton;
  11.     import away3d.containers.ObjectContainer3D;
  12.     import away3d.controllers.LookAtController;
  13.     import away3d.animators.SkeletonAnimator;
  14.     import away3d.animators.SkeletonAnimationSet;
  15.     import away3d.entities.Mesh;
  16.     import away3d.containers.Scene3D;
  17.     import away3d.library.assets.AssetType;
  18.     import away3d.cameras.Camera3D;
  19.     import away3d.events.AssetEvent;
  20.     import away3d.library.AssetLibrary;
  21.     import flash.system.Security;
  22.     import flash.net.URLRequest;
  23.     import away3d.loaders.parsers.Parsers;
  24.     import flash.events.Event;
  25.     import away3d.containers.View3D;
  26.     import flash.display.Sprite;
  27.  
  28.     public class Test01 extends Sprite {
  29.        
  30.         private var _view:View3D;
  31.         private var _scene:Scene3D;
  32.         private var _camera:Camera3D;
  33.         private var _mesh:Mesh;
  34.         private var skeleton:Skeleton;
  35.         private var animationSet:SkeletonAnimationSet;
  36.         private var animator:SkeletonAnimator;
  37.         private var moveState:SkeletonAnimationState;
  38.         private var hoverController:HoverController;
  39.         private var crossfadeTransition:CrossfadeStateTransition;
  40.        
  41.        
  42.         private var wadUrl:String = 'http://127.0.0.1/~ufk/work-projects/3d/away3d/flex/test01/bin/box2.awd';
  43.         public function Test01() {
  44.             Security.allowDomain("*");
  45.             this._view = new View3D();
  46.             this._view.backgroundColor= 0x666666;
  47.             this._view.antiAlias=4;
  48.            
  49.             this.addChild(this._view);
  50.             this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
  51.            
  52.             AssetLibrary.enableParser(AWD2Parser);     
  53.             AssetLibrary.addEventListener(AssetEvent.ASSET_COMPLETE, onAssetComplete);
  54.             AssetLibrary.addEventListener(LoaderEvent.RESOURCE_COMPLETE, onResourceComplete);
  55.             AssetLibrary.addEventListener(LoaderEvent.LOAD_ERROR, onLoadError);
  56.             AssetLibrary.load(new URLRequest(wadUrl));
  57.  
  58.            
  59.         }
  60.        
  61.         private function onLoadError(event:LoaderEvent):void {
  62.             trace("Error Loading: " + event.url);
  63.         }
  64.        
  65.         private function onResourceComplete(ev:LoaderEvent):void {
  66.             setupScene();
  67.         }
  68.        
  69.         private function setupScene():void {
  70.            
  71.             this._camera = new Camera3D();
  72.             this._camera.lens.far = 5000;
  73.             this._camera.lens.near = 20;
  74.            
  75.             this._scene = new Scene3D();
  76.            
  77.             this._view.camera=this._camera;
  78.             this._view.scene=this._scene;
  79.            
  80.             this.hoverController = new HoverController(this._camera);
  81.             this.hoverController.tiltAngle=0;
  82.             this.hoverController.panAngle=180;
  83.             this.hoverController.minTiltAngle=-60;
  84.             this.hoverController.maxTiltAngle=60;
  85.            
  86.            
  87.                 stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
  88.                 stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
  89.            
  90.            
  91.             this.skeleton=Skeleton(AssetLibrary.getAsset("Bone001"));
  92.             this.moveState=SkeletonAnimationState(AssetLibrary.getAsset("Lefty"));
  93.             this._mesh = Mesh(AssetLibrary.getAsset("Box001"));
  94.             this._mesh.scale(10);
  95.             this._mesh.z=1000;
  96.             this._mesh.rotationY=-45;
  97.             this._scene.addChild(this._mesh);
  98.            
  99.             this.animationSet = new SkeletonAnimationSet(3);
  100.             this.animationSet.addState(moveState.name, moveState);
  101.            
  102.             this.animator = new SkeletonAnimator(this.animationSet, this.skeleton);
  103.             this.animator.updateRootPosition=false;
  104.             this._mesh.animator=this.animator;
  105.            
  106.             this.crossfadeTransition = new CrossfadeStateTransition(0.5);
  107.            
  108.             this.hoverController.lookAtObject = this._mesh;
  109.             this.animator.playbackSpeed=1;
  110.             this.animator.play("Lefty",this.crossfadeTransition);
  111.            
  112.         }
  113.        
  114.         private function onKeyUp(event:KeyboardEvent):void {
  115.            
  116.         }
  117.        
  118.         private function onKeyDown(event:KeyboardEvent):void {
  119.             trace("key down");
  120.             switch (event.keyCode) {
  121.                 case (Keyboard.X):
  122.                     this._camera.rotationX+=0.5;                   
  123.                     break;
  124.                 case (Keyboard.Y):
  125.                     this._camera.rotationY+=0.5;                   
  126.                     break;
  127.                 case (Keyboard.Z):
  128.                     this._camera.rotationZ+=0.5;                   
  129.                     break;             
  130.             }
  131.            
  132.            
  133.         }
  134.        
  135.        
  136.         private function onAssetComplete(event:AssetEvent):void {
  137.            
  138.             trace("Loaded type: " + event.asset.assetType + " name: " +  event.asset.name)
  139.            
  140.         }
  141.        
  142.         private function onEnterFrame(ev : Event) : void
  143.         {
  144.                 _view.render();
  145.         }      
  146.        
  147.     }
  148. }
Advertisement
Add Comment
Please, Sign In to add comment