最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Flash AS3代碼基礎(chǔ)教程:物理基礎(chǔ)之速度向量

  發(fā)布時間:2014-07-19 10:16:26   作者:佚名   我要評論
本例為Flash AS3代碼基礎(chǔ)實例教程,主要講解工具的運用、顏色的運用和補間形狀的制作,代碼部分未作講解,希望能給朋友們帶來幫助

本例為Flash AS3代碼基礎(chǔ)實例教程,主要講解工具的運用、顏色的運用和補間形狀的制作,代碼部分未作講解,希望能給朋友們帶來幫助~~

效果演示:

物體運動的最基本屬性就是速度。很多人把速度向量(velocity)和速度(speed)等同,這是不對的,因為速度僅僅是速度向量的一部分,速度向量的概念還包括一個非常重要的因素:方向。速度向量的簡單定義是:某個方向上的速度。

向量由長度和方向組成。在速度向量中,長度就是速度。向量用帶有箭頭的線段表示,箭頭的長度就是向量的長度,箭頭所指的方向就是向量的方向。

需要注意的是,長度總是正數(shù),如果一個長度為負數(shù)的向量只表示該向量的反方向,反速度向量為反方向的向量。

注意:向量沒有起點,向量不能說明哪里是起點哪里是終點,它僅僅表示出了物體移動的速度與方向。因此,如果兩個向量的方向及長度都相同,即使它們位于不同位置,那么它們?nèi)允莾蓚€相等的向量。

單軸速度向量

首先,把速度(向量)只放在一個軸上:x 軸(水平軸)。讓物體從屏幕的左側(cè)到右側(cè),移動速度就是物體每一幀移動的像素值。因此,如果說速度向量在 x 軸上為5,就意味著物體在每一幀都會向右移動5個像素。同樣,如果速度向量在 x 軸上為 -5,那么物體每一幀就會向左移動5個像素。

我們剛剛提到了向量長度等于負值,科學(xué)地講,速度向量實際上應(yīng)該為5,而方向應(yīng)為180度。同理, y 軸正半軸上的速度向量應(yīng)為90度(垂直向下),而負 y 軸負半軸上的速度向量應(yīng)為270或90度(垂直向上)。

事實上,當(dāng)計算 x,y 速度向量的分量時,通??梢杂涀髡龜?shù)或負數(shù),比如“ x 速度向量為 -5”。在 x 軸上把減號看成“向左”的指示符,在 y 軸上則是“向上”的指示符。用 vx 表示 x 軸的速度向量,用 vy 表示 y 軸的速度向量。 vx 為正數(shù)表示向右移動,為負數(shù)表示向左移動, vy 為正數(shù)表示向下, vy 為負數(shù)表示向上。

下面我們來看一個速度向量的示例。

1、新建FLA文檔

2、新建影片剪輯元件,選擇橢圓工具,顏色任選,放射狀填充,畫50*50的圓。

3、返回到場景1,把圖層1的名稱改為小球,按Ctrl+L組合鍵,打開庫面板,把小球拖到舞臺中,在屬性面板中輸入實例名:ball。

4、添加圖層2,改名為as,選中第1幀,打開動作面板,輸入代碼:


復(fù)制代碼
代碼如下:
var vx:Number = 5;
addEventListener(Event.ENTER_FRAME,onEnterFrame);
function onEnterFrame(event:Event):void {
ball.x += vx;
}

在這個例子中,首先設(shè)置一個 x 軸速度向量(vx)等于5。記住是指每一幀5像素,所以,在每一幀中, vx 都會被加到 ball 的 x 屬性中。并為 enterFrame 設(shè)置事件處理函數(shù)。每走一幀,小球都會在前一幀的位置基礎(chǔ)上向右移動5個像素。

雙軸速度向量

使用兩個軸對物體進行移動也非常簡單,只需要定義 vx 和 vy,并在每一幀將 vx 加到 x 屬性上, vy 加到 y 屬性上。下面一個示例:

1--4 步同上,輸入代碼:


復(fù)制代碼
代碼如下:
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度的位置移動,這里要用到三角學(xué)。
已知角度為45度,斜邊長為3像素,就可以使用 Math.cos 和 Math.sin 求出 vx 和 vy 的長度。
角的鄰邊長度為 vx,因為角的余弦值等于鄰邊/斜邊。也可以說,鄰邊等于角的余弦值乘以斜邊。同樣,對邊長為 vy 的邊,因為角的正弦值等于對邊/斜邊,或是對邊等于正弦乘以斜邊。

實際使用的代碼:


復(fù)制代碼
代碼如下:
vx = Math.cos(angle) * speed;
vy = Math.sin(angle) * speed;

示例代碼:


復(fù)制代碼
代碼如下:
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,計算出的速度向量作為局部變量被使用。當(dāng)然,由于是一個簡單的示例,角度(angle)和速度(speed)都不變,那么完全可以只計算一次,然后保存在類中作為變量。而對于更高級的運動來說,角度和速度應(yīng)是不斷變化的,所以 vx 和 vy 的值也是變化的。只需要改變角度(angle)與速度(speed),就可以改變物體運動的速度及角度。

下面制作鼠標跟隨

1、新建FLA文檔

2、新建影片剪輯元件,繪制一個箭頭。

3、返回場景1,選中第1幀,打開動作面板輸入代碼:


復(fù)制代碼
代碼如下:
var speed:Number = 5;
addEventListener(Event.ENTER_FRAME,onEnterFrame);
function onEnterFrame(event:Event):void {
var dx:Number = mouseX - arrow.x;
var dy:Number = mouseY - arrow.y;
var angle:Number = Math.atan2(dy, dx);
arrow.rotation = angle * 180 / Math.PI;
var vx:Number = Math.cos(angle) * speed;
var vy:Number = Math.sin(angle) * speed;
arrow.x += vx;
arrow.y += vy;
}

先計算出箭頭與鼠標的 x 距離和 y 距離,并使用 Math.atan2 計算出它們的夾角。然后使用這個角度使箭頭旋轉(zhuǎn),再使用 Math.cos 和 Math.sin 與速度相乘計算出 x,y 速度向量,最后將它們加到箭頭的坐標上。

下面是文檔類的兩個as文件,copy到同一目錄下,創(chuàng)建一個FLA文件,文檔類:輸入FollowMouse 就可運行。


復(fù)制代碼
代碼如下:
Arrow類(繪制箭頭)
package {
import flash.display.Sprite;
public class Arrow extends Sprite {
public function Arrow() {
init();
}
public function init():void {
graphics.lineStyle(1,0,1);
graphics.beginFill(0xff0000);//填充
graphics.moveTo(-50,-25);
graphics.lineTo(0,-25);
graphics.lineTo(0,-50);
graphics.lineTo(50,0);
graphics.lineTo(0,50);
graphics.lineTo(0,25);
graphics.lineTo(-50,25);
graphics.lineTo(-50,-25);
graphics.endFill();
}
}
}

FollowMouse類(鼠標跟隨)


復(fù)制代碼
代碼如下:
package {
import flash.display.Sprite;
import flash.events.Event;
public class FollowMouse extends Sprite {
private var arrow:Arrow;
private var speed:Number = 5;
public function FollowMouse() {
init();
}
private function init():void {
arrow = new Arrow();
addChild(arrow);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function onEnterFrame(event:Event):void {
var dx:Number = mouseX - arrow.x;
var dy:Number = mouseY - arrow.y;
var angle:Number = Math.atan2(dy, dx);
arrow.rotation = angle * 180 / Math.PI;
var vx:Number = Math.cos(angle) * speed;
var vy:Number = Math.sin(angle) * speed;
arrow.x += vx;
arrow.y += vy;
}
}
}

以上就是Flash AS3代碼基礎(chǔ)教程介紹,希望對大家有所幫助!

相關(guān)文章

  • flash cs6鼠標跟隨效果實現(xiàn)代碼分享

    flash cs6想要實現(xiàn)鼠標跟隨效果?該怎么制作呢?今天我們就來看看使用as2.0實現(xiàn)鼠標跟隨效果的教程,需要的朋友可以參考下
    2019-05-19
  • Flash cs6怎么使用代碼輸入中英文文本?

    Flash cs6怎么使用代碼輸入中英文文本?Flash cs6中可以使用文字工具直接輸入文本,也可以使用代碼來輸入文本,該怎么使用代碼輸入文本呢?請看下文詳細的教程,需要的朋友
    2018-03-11
  • flash as3.0怎么定義抽象類和抽象?

    flash as3.0抽象類怎么定義? as3.0中有很多抽象類,該怎么定義抽象類和抽象方法呢?下面我們就來看看簡單的例子,需要的朋友可以參考下http://m.fzitv.net/softs/408402.
    2018-02-28
  • flash cs6中怎么使用ActionScript3.0?

    flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,該怎么使用呢?下面我們就來看看詳細的教程,需要的朋友可以參考下
    2018-01-25
  • Flash中怎么實現(xiàn)鼠標點擊決定圖像位置?

    本教程給大家分享一個Flash小教程,教大家在Flash CS6中怎么實現(xiàn)鼠標點擊決定圖像位置?方法很簡單,感興趣的朋友歡迎前來一起分享學(xué)習(xí)
    2018-01-12
  • Flash中如何用代碼將圖片放在自己想要的舞臺位置?

    本教程教腳本之家的ActionScript教程學(xué)習(xí)者在Flash中如何用代碼將圖片放在自己想要的舞臺位置,教程講解的詳細,感興趣的朋友歡迎前來分享學(xué)習(xí)
    2017-11-20
  • 在Flash CS6中使用with函數(shù)繪制背景圖教程

    本教程教腳本之家的ActionScript教程學(xué)習(xí)者如何在Flash CS6中使用with函數(shù)繪制背景圖?教程一步步講解的挺詳細,方法也不難,非常適合Flash新手入門學(xué)習(xí)
    2017-11-18
  • Flash怎么設(shè)置元件坐標?flash使用代碼設(shè)置元件的坐標的教程

    Flash怎么設(shè)置元件坐標?flash中導(dǎo)如的元件需要添加坐標,該怎么定位元件坐標呢?下面我們就來看看flash使用代碼設(shè)置元件的坐標的教程,需要的朋友可以參考下
    2017-10-11
  • Flash怎么制作來回搖擺的花朵的動畫?

    Flash怎么制作來回搖擺的花朵的動畫?Flash中想要給花朵制作一段搖擺的動畫效果,該怎么制作呢?下面我們就來看看詳細的教程,很簡單,需要的朋友可以參考下
    2017-05-23
  • Flash怎么制作流動七彩色的文字?

    Flash怎么制作流動七彩色的文字?想要讓文字動起來,該怎么使用flash給文字制作一個流動七彩色的動畫呢?下面我們就來看看詳細的教程,需要的朋友可以參考下
    2017-04-23

最新評論

沧州市| 高邑县| 华宁县| 威远县| 淅川县| 体育| 克拉玛依市| 牡丹江市| 阳信县| 壶关县| 临邑县| 陕西省| 七台河市| 淳安县| 青海省| 双牌县| 晋宁县| 兴安盟| 洞口县| 永济市| 鄂州市| 广水市| 郴州市| 临沭县| 土默特左旗| 子洲县| 林周县| 蓬溪县| 佳木斯市| 滨海县| 双鸭山市| 稷山县| 天柱县| 昌吉市| 紫阳县| 瑞昌市| 盐池县| 满洲里市| 朝阳区| 府谷县| 孟津县|