2008/07/26 | 第9讲 程序控制的动画效果
类别(Flash学习笔记) | 评论(0) | 阅读(170) | 发表于 23:09

  下面是书中给出的一个弹性动画的效果,演示了典型的 加速度、速率 和 衰减效果,非常有代表性,

package {
    import flash.display.Sprite;
    import flash.events.Event;
   
    public class Spring extends Sprite {
        private var _sprite:Sprite;
        private var _vx:Number = 20 ;// 初始状态下的x轴上的速率
        private var _vy:Number = 0; //始始状态下的y轴上的速率
        private var _k:Number = .1;  //弹性系数,决定弹力的大小
        private var _damp:Number = .94; //衰减系数,决定运动衰减的快慢
        private var _targetX:Number = 200;  //  指定的目标位置,之后用鼠标替代
        private var _targetY:Number = 200;  //
       
        public function Spring(  ) {
            _sprite = new Sprite(  );
            _sprite.graphics.beginFill(0x0000ff, 100);
            _sprite.graphics.drawCircle(0, 0, 25);
            _sprite.graphics.endFill(  );
            _sprite.x = 0;
            _sprite.y = 0;
            addChild(_sprite);
            addEventListener(Event.ENTER_FRAME, onEnterFrame);
        }
       
        public function onEnterFrame(event:Event):void {
            var ax:Number = (mouseX - _sprite.x) * _k;  //各种因素综合之后产生的运行 加速度。
            var ay:Number = (mouseY - _sprite.y) * _k;
            _vx += ax;  //速率的变化与 加速度 有关
            _vy += ay;
            _sprite.x += _vx; // 元件的位置与 速率 有关,与 加速度 没有直接关系。
            _sprite.y += _vy;
            _vx *= _damp;  //让速率 进行衰减
            _vy *= _damp;
        }
    }   
}

0

评论Comments