过程:添加动作标签。model通过调用动作标签来加载相应的动作。一般的各个动作标签用常量来表明。
package com.lz.demo {
import flare.basic.Scene3D;
import flare.basic.Viewer3D;
import flare.core.Label3D;
import flare.core.Pivot3D;
import flare.system.* //Input3D
import flash.display.*;
import flash.events.Event;
public class demo_anim extends Sprite {
private var scene:Scene3D;
private var model:Pivot3D;
private var walk:Label3D;
private var run:Label3D;
public static const WALK:String="walk";
public static const RUN:String="run";
public function demo_anim() {
stage.scaleMode=StageScaleMode.NO_SCALE;
stage.align=StageAlign.TOP_LEFT;
scene=new Viewer3D(this);
walk=new Label3D(WALK, 0, 41);
run=new Label3D(RUN, 50, 74);
scene.addEventListener(Scene3D.COMPLETE_EVENT, completeEvent);
model=scene.addChildFromFile("../resources/player.f3d");
}
protected function completeEvent(event:Event):void {
model.addLabel(walk);
model.addLabel(run);
model.gotoAndPlay(WALK);
scene.addEventListener(Scene3D.UPDATE_EVENT, updateEvent);
}
protected function updateEvent(event:Event):void {
// stop the model animation.
if ( Input3D.keyHit( Input3D.S ) ) model.stop();
// resume the model animation.
if ( Input3D.keyHit( Input3D.P ) ) model.play();
// play certain animation label and blend between the animations.
if ( Input3D.keyHit( Input3D.NUMBER_1 ) ) model.gotoAndPlay( WALK, 15 );
if ( Input3D.keyHit( Input3D.NUMBER_2 ) ) model.gotoAndPlay( RUN, 15 );
if ( Input3D.keyHit( Input3D.NUMBER_3 ) ) model.gotoAndStop( 0, 10 );
// increment and decrement frameSpeed.
if ( Input3D.keyHit( Input3D.NUMPAD_ADD ) ) model.frameSpeed += 0.5;
if ( Input3D.keyHit( Input3D.NUMPAD_SUBTRACT ) ) model.frameSpeed -= 0.5;
// reset the frameSpeed.
if ( Input3D.keyHit( Input3D.R ) ) model.frameSpeed = 1;
}
}
}