Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.xpogames.Test01 {
- import away3d.animators.transitions.CrossfadeStateTransition;
- import away3d.controllers.HoverController;
- import away3d.events.LoaderEvent;
- import away3d.loaders.parsers.AWD2Parser;
- import flash.ui.Keyboard;
- import flash.events.KeyboardEvent;
- import away3d.animators.AnimationStateBase;
- import away3d.animators.SkeletonAnimationState;
- import away3d.animators.data.Skeleton;
- import away3d.containers.ObjectContainer3D;
- import away3d.controllers.LookAtController;
- import away3d.animators.SkeletonAnimator;
- import away3d.animators.SkeletonAnimationSet;
- import away3d.entities.Mesh;
- import away3d.containers.Scene3D;
- import away3d.library.assets.AssetType;
- import away3d.cameras.Camera3D;
- import away3d.events.AssetEvent;
- import away3d.library.AssetLibrary;
- import flash.system.Security;
- import flash.net.URLRequest;
- import away3d.loaders.parsers.Parsers;
- import flash.events.Event;
- import away3d.containers.View3D;
- import flash.display.Sprite;
- public class Test01 extends Sprite {
- private var _view:View3D;
- private var _scene:Scene3D;
- private var _camera:Camera3D;
- private var _mesh:Mesh;
- private var skeleton:Skeleton;
- private var animationSet:SkeletonAnimationSet;
- private var animator:SkeletonAnimator;
- private var moveState:SkeletonAnimationState;
- private var hoverController:HoverController;
- private var crossfadeTransition:CrossfadeStateTransition;
- private var wadUrl:String = 'http://127.0.0.1/~ufk/work-projects/3d/away3d/flex/test01/bin/box2.awd';
- public function Test01() {
- Security.allowDomain("*");
- this._view = new View3D();
- this._view.backgroundColor= 0x666666;
- this._view.antiAlias=4;
- this.addChild(this._view);
- this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
- AssetLibrary.enableParser(AWD2Parser);
- AssetLibrary.addEventListener(AssetEvent.ASSET_COMPLETE, onAssetComplete);
- AssetLibrary.addEventListener(LoaderEvent.RESOURCE_COMPLETE, onResourceComplete);
- AssetLibrary.addEventListener(LoaderEvent.LOAD_ERROR, onLoadError);
- AssetLibrary.load(new URLRequest(wadUrl));
- }
- private function onLoadError(event:LoaderEvent):void {
- trace("Error Loading: " + event.url);
- }
- private function onResourceComplete(ev:LoaderEvent):void {
- setupScene();
- }
- private function setupScene():void {
- this._camera = new Camera3D();
- this._camera.lens.far = 5000;
- this._camera.lens.near = 20;
- this._scene = new Scene3D();
- this._view.camera=this._camera;
- this._view.scene=this._scene;
- this.hoverController = new HoverController(this._camera);
- this.hoverController.tiltAngle=0;
- this.hoverController.panAngle=180;
- this.hoverController.minTiltAngle=-60;
- this.hoverController.maxTiltAngle=60;
- stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
- stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
- this.skeleton=Skeleton(AssetLibrary.getAsset("Bone001"));
- this.moveState=SkeletonAnimationState(AssetLibrary.getAsset("Lefty"));
- this._mesh = Mesh(AssetLibrary.getAsset("Box001"));
- this._mesh.scale(10);
- this._mesh.z=1000;
- this._mesh.rotationY=-45;
- this._scene.addChild(this._mesh);
- this.animationSet = new SkeletonAnimationSet(3);
- this.animationSet.addState(moveState.name, moveState);
- this.animator = new SkeletonAnimator(this.animationSet, this.skeleton);
- this.animator.updateRootPosition=false;
- this._mesh.animator=this.animator;
- this.crossfadeTransition = new CrossfadeStateTransition(0.5);
- this.hoverController.lookAtObject = this._mesh;
- this.animator.playbackSpeed=1;
- this.animator.play("Lefty",this.crossfadeTransition);
- }
- private function onKeyUp(event:KeyboardEvent):void {
- }
- private function onKeyDown(event:KeyboardEvent):void {
- trace("key down");
- switch (event.keyCode) {
- case (Keyboard.X):
- this._camera.rotationX+=0.5;
- break;
- case (Keyboard.Y):
- this._camera.rotationY+=0.5;
- break;
- case (Keyboard.Z):
- this._camera.rotationZ+=0.5;
- break;
- }
- }
- private function onAssetComplete(event:AssetEvent):void {
- trace("Loaded type: " + event.asset.assetType + " name: " + event.asset.name)
- }
- private function onEnterFrame(ev : Event) : void
- {
- _view.render();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment