当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > Flash实例教程:用AS3代码表现倾斜角与斜率

Flash动画制作
赤手空拳下载Flash
创建一个Flash站点的十大技巧
用Flash制作Google搜索程序
枫桥夜泊下 遮罩效果的动态文本
Flash MX 2004 ActionScript图文教程(十二)
Flash实例教程 扫描文字效果
Flash MX 2004 ActionScript图文教程(十三)
快速制作您的flash图表
Flash MX 2004 ActionScript图文教程(十四)
Flash实例教程 变幻的字母
Flash MX 2004 ActionScript图文教程(十五)
Flash实例教程 相约北京 扬帆青岛
Flash教程实例 光线特效文字
Flash课件实例 画正多边形
Flash课件实例 平行四边形法则
Flash实例教程 小孔成像课件
精简Flash文件体积七法
Flash教程实例:水中浮动的文字
金鸡贺岁!Flash制作鸡年新春动画贺卡
Flash MX 2004新特性实例学习一

Flash动画制作 中的 Flash实例教程:用AS3代码表现倾斜角与斜率


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-22   浏览: 129 ::
收藏到网摘: n/a

直线与X轴正半轴所成的角称直线的倾斜角,当倾斜角不等于90度时,倾斜角的正切称为直线的斜率。图:

Flash实例教程:用AS3代码表现倾斜角与斜率_软晨学习网

其中角a就是直线的倾斜角,而斜率就是直角三角中对边BC与邻边AB的比值,即正切值。正切值通过Math类的tan()方法可以得到。

给定A点和C点的坐标,可求得角a的角度值。

求角a的正切值的算法:
(C.y - A.y) / (C.x - A.x);

下面的代码求直线的斜率:
(C.x == A.x)?Infinity:(C.y - A.y) / (C.x - A.x);
代码先判断两点的横坐标是否相等,如果相等,说明直线垂直于x轴,这时不存在斜率,所以给斜率一定特殊值Infinity。

例:

1、新建Flash文档,取名存盘。

2、创建影片剪辑,图层1用椭圆工具绘制一个圆,填充色和大小根据需要定。插入图层2, as层,输入代码:

//注册鼠标按下事件侦听器
this.addEventListener(MouseEvent.MOUSE_DOWN,startDragFunc);
//注册鼠标释放事件侦听器
this.addEventListener(MouseEvent.MOUSE_UP,stopDragFunc);
//定义接收按下事件的函数
function startDragFunc(e:MouseEvent);
{
//开始拖动
e.target.startDrag();
//更新显示
e.updateAfterEvent() ;
}
//定义接收释放事件的函数
function stopDragFunc(e:MouseEvent);
{
//停止拖动
e.target.stopDrag()
}

3、返回场景1,在图层1的第一帧拖入两个影片剪辑,在属性面板中输入剪辑的名字,p1 、p2。

4、插入图层2,选择文本工具,创建静态文本,字体大小15 、字体自定。输入:斜率:在右面创建动态文本,名:k_txt。在下面再次创建静态文本,输入:倾斜角:右面创建动态文本,名:a_txt。

5、插入图层3,as层。输入代码:

//导入数学函数
include "Math2.as";
//创建两个点
var A:Point=new Point()
var B:Point=new Point()

//创建用于绘制箭头的容器
var arrow_shape:Shape=new Shape();
this.addChild(arrow_shape);
stage.addEventListener(Event.ENTER_FRAME,loop);

function loop(e:Event):void
{
//清除绘图
arrow_shape.graphics.clear();
//在两点间绘制箭头
drawArrow(arrow_shape.graphics,p1.x,p1.y,p2.x,p2.y);
//设置点A的值
A.x=p1.x;
A.y=p1.y;
//设置点B的值
B.x=p2.x;
B.y=p2.y;
//根据点A和点B创建直线

var line:Line=new Line(A,B);

//把斜率保存两位小数,并转换为字符串显示出来
k_txt.text=line.K.toFixed(2);
//把倾斜角取整后显示
a_txt.text=line.angle.toFixed();
}

上面的代码把弧度和角度转换等函数放在Math2.as文件中,通过include导入Math2.as文件就可以使用这些数学函数。Math2.as文件中添加了绘制箭头的函数drawArraw()。

5、测试影片,看一下效果。如果需要输出p2的x、y坐标添加代码:

x_txt.text = p2.x;
y_txt.text = p2.y;

界面上添加静态文本和动态文本就不用细说了吧,如果不需要显示斜率注释掉。