AS3学习之路(6) 简单动画(3 位领导批示)

通过定时器或enterFrame来实现对像的改变和时间联系起来以实现动画.

两个公式需要记忆一下:

(1) 计算弧度 radians = angle * Math.PI / 180
(2) 计算度数 angle = radians * 180 / Math.PI

?View Code ACTIONSCRIPT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.TimerEvent;
	import flash.utils.Timer;
	import flash.filters.DropShadowFilter;
 
	public class Cartoon extends Sprite
	{
		private var _sprite:Sprite;
		private var _vx:Number;
		private var _vy:Number;
		private var _dx:Number;
		private var _dy:Number;
		private var _dist:Number;
		private var _angle:Number = 10;
		private var _speed:uint = 10;
		private var _easingSpeed:Number = .1;
		private var _targetX = 400;
		private var _targetY = 300;
		private var _timer:Timer;
 
		public function Cartoon()
		{
			_sprite = new Sprite();
			_sprite.graphics.lineStyle();
			_sprite.graphics.beginFill(0x336699, 100);
			_sprite.graphics.drawCircle(0, 0, 25);
			_sprite.graphics.endFill();
			_sprite.x = 50;
			_sprite.y = 50;			
			addChild(_sprite);
			_sprite.filters = [new DropShadowFilter()];
 
			/*
			var radians:Number = _angle * Math.PI / 180;
			_vx = Math.cos(radians) * _speed;
			_vy = Math.sin(radians) * _speed;
			trace(Math.cos(radians));
			trace(Math.sin(radians));
			*/
 
			_timer = new Timer(30);
			_timer.addEventListener("timer", onTimer);
			_timer.start();
		}
 
		private function onTimer(event:TimerEvent):void
		{
			/*
			_dx = _targetX - _sprite.x;
			_dy = _targetY - _sprite.y;
			trace(_dx);
			trace(_dy);
			_dist = Math.sqrt(_dx * _dx + _dy * _dy);
			trace(_dist);
 
			if(_dist < 1)
			{
				_sprite.x = _targetX;
				_sprite.y = _targetY;
				_timer.stop();
			}
			else
			{
			*/
				_vx = (mouseX - _sprite.x) * _easingSpeed;
				_vy = (mouseY - _sprite.y) * _easingSpeed;
				_sprite.x += _vx;
				_sprite.y += _vy;
				trace(_sprite.x);
				trace(_sprite.y);
			/*
			}
			*/
		}
	}
}

相关文章

分享到新浪微博 推荐到豆瓣 分享到 Google Reader 加入Google书签 嘀咕一下 分享到饭否 分享到做啥 分享到叽歪 分享到鲜果 加入QQ书签 加入百度搜藏 加入雅虎书签 分享到垦一垦

  1. 3
    银子

    您好.AS只是兴趣..暂还没想以它为职业.. 谢谢关注本博 :)

  2. 2
    zcm211

    您好

    我们是一支创业团队,现急需有能力有想法的AS3程序员加入,如果您感兴趣的话请与我联系,抱歉打扰

    Brs,
    Walter
    :)

  3. 1
    AS技术交流博客

    尊敬的博主您好,我是AS技术交流博客家园,诚挚邀请您入住AS博客园,专业打造干净的ActionScript技术交流乐园
    http://www.asbloger.com
    我的个人AS博客yung.asbloger.com

请领导指示

验证码 (必须)

Additional comments powered by BackType

随机显示的10篇日志

评论最多的10篇日志

浏览最多的10篇日志