当前位置: 主页 > 网页制作 > Flash > Flash AS3.0学习速度向量

Flash AS3.0学习速度向量

时间:2009-12-21来源:互联网 点击:

1、新建FLA文档

2、新建影片剪辑元件,选择椭圆工具,颜色任选,放射状填充,画50*50的圆。

3、返回到场景1,把图层1的名称改为小球,按Ctrl+L组合键,打开库面板,把小球拖到舞台中,在属性面板中输入实例名:ball。

4、添加图层2,改名为as,选中第1帧,打开动作面板,输入代码:

var vx:Number = 5;
addEventListener(Event.ENTER_FRAME,onEnterFrame);
function onEnterFrame(event:Event):void {
        ball.x += vx;
}

在这个例子中,首先设置一个 x 轴速度向量(vx)等于5。记住是指每一帧5像素,所以,在每一帧中, vx 都会被加到 ball 的 x 属性中。并为 enterFrame 设置事件处理函数。每走一帧,小球都会在前一帧的位置基础上向右移动5个像素。

双轴速度向量

使用两个轴对物体进行移动也非常简单,只需要定义 vx 和 vy,并在每一帧将 vx 加到 x 属性上, vy 加到 y 属性上。下面一个示例:

1--4 步同上,输入代码:

var vx:Number = 5;
var vy:Number = 5;
addEventListener(Event.ENTER_FRAME,onEnterFrame);
function onEnterFrame(event:Event):void {
        ball.x += vx;
        ball.y += vy;
}

角速度

假如想让物体以每帧3像素的速度向45度的位置移动,这里要用到三角学。
已知角度为45度,斜边长为3像素,就可以使用 Math.cos 和 Math.sin 求出 vx 和 vy 的长度。
角的邻边长度为 vx,因为角的余弦值等于邻边/斜边。也可以说,邻边等于角的余弦值乘以斜边。同样,对边长为 vy 的边,因为角的正弦值等于对边/斜边,或是对边等于正弦乘以斜边。

实际使用的代码:
vx = Math.cos(angle) * speed;
vy = Math.sin(angle) * speed;

示例代码:

var angle:Number = 45;
var speed:Number = 3;
addEventListener(Event.ENTER_FRAME,onEnterFrame);
function onEnterFrame(event:Event):void {
        var radians:Number=angle * Math.PI / 180;
        var vx:Number=Math.cos(angle) * speed;
        var vy:Number=Math.sin(angle) * speed;
        ball.x += vx;
        ball.y += vy;
}

与前面 vx,vy 主要不同的地方是变成了 angle 和 speed,计算出的速度向量作为局部变量被使用。当然,由于是一个简单的示例,角度(angle)和速度(speed)都不变,那么完全可以只计算一次,然后保存在类中作为变量。而对于更高级的运动来说,角度和速度应是不断变化的,所以 vx 和 vy 的值也是变化的。只需要改变角度(angle)与速度(speed),就可以改变物体运动的速度及角度。

站长资讯网
.
分页: [1] [2] [3]
TAG: Flash AS3.0,速度
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言