效果演示,鼠標(biāo)左鍵按住兩端移動(dòng):
進(jìn)入論壇參與討論: http://www.missyuan.com/viewthread.php?tid=419023
演示:
坐標(biāo)中的兩點(diǎn)可以確定一條直線,直線與線段不同,線段有長(zhǎng)度,而直線是沒有長(zhǎng)度的。通過(guò)兩點(diǎn)可以確定一條直線,通過(guò)角度和一個(gè)定點(diǎn)也能確定一條直線。
直線與X軸正半軸所成的角稱直線的傾斜角,當(dāng)傾斜角不等于90度時(shí),傾斜角的正切稱為直線的斜率。圖:
其中角a就是直線的傾斜角,而斜率就是直角三角中對(duì)邊BC與鄰邊AB的比值,即正切值。正切值通過(guò)Math類的tan()方法可以得到。
給定A點(diǎn)和C點(diǎn)的坐標(biāo),可求得角a的角度值。
求角a的正切值的算法:
(C.y - A.y) / (C.x - A.x); |
下面的代碼求直線的斜率:
(C.x == A.x)?Infinity:(C.y - A.y) / (C.x - A.x); |
代碼先判斷兩點(diǎn)的橫坐標(biāo)是否相等,如果相等,說(shuō)明直線垂直于x軸,這時(shí)不存在斜率,所以給斜率一定特殊值Infinity。
例:
1、新建Flash文檔,取名存盤。
2、創(chuàng)建影片剪輯,圖層1用橢圓工具繪制一個(gè)圓,填充色和大小根據(jù)需要定。插入圖層2, as層,輸入代碼:
//注冊(cè)鼠標(biāo)按下事件偵聽器 this.addEventListener(MouseEvent.MOUSE_DOWN,startDragFunc); //注冊(cè)鼠標(biāo)釋放事件偵聽器 this.addEventListener(MouseEvent.MOUSE_UP,stopDragFunc); //定義接收按下事件的函數(shù) function startDragFunc(e:MouseEvent); { //開始拖動(dòng) e.target.startDrag(); //更新顯示 e.updateAfterEvent() ; } //定義接收釋放事件的函數(shù) function stopDragFunc(e:MouseEvent); { //停止拖動(dòng) e.target.stopDrag() } |
3、返回場(chǎng)景1,在圖層1的第一幀拖入兩個(gè)影片剪輯,在屬性面板中輸入剪輯的名字,p1 、p2。