效果演示,鼠标左键按住两端移动:
进入论坛参与讨论: http://www.missyuan.com/viewthread.php?tid=419023
演示:
坐标中的两点可以确定一条直线,直线与线段不同,线段有长度,而直线是没有长度的。通过两点可以确定一条直线,通过角度和一个定点也能确定一条直线。
直线与X轴正半轴所成的角称直线的倾斜角,当倾斜角不等于90度时,倾斜角的正切称为直线的斜率。图:
其中角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。