as3基础系列3--动画部分

1.加速动画

InBlock.gifpackage {
InBlock.gif        import flash.display.Sprite;
InBlock.gif        import flash.events.Event;
InBlock.gif        
InBlock.gif         public  class anim1 extends Sprite {
InBlock.gif                 private var _sprite:Sprite =  new Sprite();
InBlock.gif                 private var _ax:Number = .2; //x方向加速度
InBlock.gif                 private var _ay:Number = .1; //y方向加速度
InBlock.gif                 private var _vx:Number = 0; //x方向速度
InBlock.gif                 private var _vy:Number = 0; //y方向速度
InBlock.gif                
InBlock.gif     //构造方法
InBlock.gif                 public function anim1(    ) {
InBlock.gif                        _sprite.graphics.beginFill(0x0000ff, 100); //设置填充选项
InBlock.gif                        _sprite.graphics.drawCircle(0, 0, 25); //绘制圆
InBlock.gif       //设置_sprite坐标位置
InBlock.gif                        _sprite.x = 5;
InBlock.gif                        _sprite.y = 10;
InBlock.gif                        addChild(_sprite); //加入舞台
InBlock.gif                        addEventListener(Event.ENTER_FRAME, onEnterFrame); //侦听ENTER_FRAME事件
InBlock.gif                }
InBlock.gif                
InBlock.gif                 public function onEnterFrame( event:Event): void {
InBlock.gif                        _vx += _ax;
InBlock.gif                        _vy += _ay;
InBlock.gif                        _sprite.x += _vx;
InBlock.gif                        _sprite.y += _vy;
InBlock.gif                }
InBlock.gif        }        
InBlock.gif}


2.根据某一方向的变化计算2个分量值:

InBlock.gifpackage {
InBlock.gif        import flash.display.Sprite;
InBlock.gif        import flash.events.Event;
InBlock.gif        
InBlock.gif         public  class anim2 extends Sprite {
InBlock.gif                 private var _sprite:Sprite =  new Sprite();
InBlock.gif                 private var _ax:Number;
InBlock.gif                 private var _ay:Number;
InBlock.gif                 private var _vx:Number = 0;
InBlock.gif                 private var _vy:Number = 0;
InBlock.gif                 private var angle:Number = 45;
InBlock.gif                 private var accel:Number = .5;
InBlock.gif                 public function anim2() {
InBlock.gif                        _sprite.graphics.beginFill(0x0000ff, 100);
InBlock.gif                        _sprite.graphics.drawCircle(0, 0, 25);
InBlock.gif                        _sprite.x = 5;
InBlock.gif                        _sprite.y = 10;
InBlock.gif                        addChild(_sprite);
InBlock.gif                        addEventListener(Event.ENTER_FRAME, onEnterFrame);
InBlock.gif                }
InBlock.gif                
InBlock.gif                 public function onEnterFrame( event:Event): void {
InBlock.gif      var radians:Number = angle * Math.PI / 180; //角度转化弧度
InBlock.gif      _ax = Math.cos(radians) * accel; //根据梯度(?不知道是不是这个概念,就是那个斜边长)计算水平方向加速度
InBlock.gif      _ay = Math.sin(radians) * accel;
InBlock.gif      _vx += _ax;
InBlock.gif      _vy += _ay;
InBlock.gif      _sprite.x += _vx;
InBlock.gif      _sprite.y += _vy;
InBlock.gif                }
InBlock.gif        }        
InBlock.gif}


当然除了onEnterFrame也可以用timer定时器事件:

            _timer = new Timer(3);
            _timer.addEventListener("timer", onTimer);
            _timer.start();




 本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/162249,如需转载请自行联系原作者

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值