flare3d_animation

 过程:添加动作标签。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;
}
}
}
原文地址:https://www.cnblogs.com/xiaowai/p/2348776.html