利用Label3D来规划和播放多动作模型

来源:互联网 发布:管家婆可以导出数据吗 编辑:程序博客网 时间:2024/06/01 16:24

首先明确一下,Label3D是如何使用的:

new Label3D(WALK, 0, 41);// 参数1:标签名称(String)// 参数2:标签起始帧(int)// 参数3:标签结束帧(int)

接下来是具体示例代码:

package{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{public static const WALK:String = "walk"public static const RUN:String = "run"private var scene:Scene3D;private var model:Pivot3D;private var walk:Label3D;private var run:Label3D;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 );// flare3d 2.5.x开始已经不再支持f3d模型,全部使用 zf3dmodel = scene.addChildFromFile( "../resources/player.zf3d" );}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;}}}


原创粉丝点击