999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Actionscript的物理運動編程研究

2008-12-31 00:00:00
電腦知識與技術 2008年35期

摘要:該文的研究內容將用到編程,數學,物理等技術。在例子中將運用Flash中強大的腳本語言ActionScript讓物體運動起來,這些都是補間動畫無法比擬的。

關鍵詞:腳本;運動;編程

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)35-2493-02

Research on Programing physics Motion Based on the Actionscript

CHEN Jue

(Suzhou Art Design Technology Institute,Suzhou 215014,China)

Abstract: This research covers programming, math, and physics techniques.The projects based on the powerful language in Flash ,called ActionScript,and used to make things move with ActionScript that you could never hope to match with tweening.

Key words:actionscript; motion; programing

從 Flash 最早的版本開始,就支持補間動畫,然后讓 Flash 自動創建補間動畫即可。這里我們將研究如何運用Flash 中的一種強大的語言ActionScript,并結合編程,數學,物理等技術,實現物體運動中關于速度,加速度,彈性,緩動等內容的實現。

1 勻速運動(Velocity)

物體運動的最基本屬性就是速度。要使物體以一個恒定的速度運動,就要在每一幀不斷的累加恒定的速度。這里可以使用幀的循環的方式,來使物體不斷的累加恒定的速度,以達到目的地。你可以新建一個Flash文檔,并在舞臺上放置一個mc(例如球)命名為ball,做以下的實驗。

vx=n;//n為初始值

onEnterFrame=function(){

ball._x+=vx;//vx為累加的恒定速度值。

}

2 加速運動(Acceleration)

我們假定加速度為ax,那么在x軸上速度就為vx=vx+ax,若初速度設為0;代碼為:

ax=n;

vx=0;

onEnterframe=function(){

vx+=ax;

ball._x+=vx;

}

這是小球在水平方向上的加速運動。現在我們假想一下,如果小球運動時的方向有一定的角度,那要如何實現呢?解決的辦法是,小球在每一個軸上都有了加速度,我們可以刷新每個軸上的速度向量,并更新為物體的位置。

force= 10;

angle = 45; // 45度角運動

r= angle * 180 / Math.PI;

ax= Math.cos(r) * force;

ay= Math.sin(r) * force;

vx += ax;

vy += ay;

ball.x += vx;

ball .y += vy;

3 彈性(Spring)

彈性運動是 ActionScript 動畫中最強大和最有用的物理學概念。幾乎所有的物體都可以使用彈性運動。下面就來看看什么是彈性運動以及在 Flash 編程中的應用。

彈性的加速度與物體到目標點的距離成正比例。

這里我們仍然使用可以拖拽的小球作為主體。默認位置還是 x 軸的 0 點,使它具有運動到中心點的彈性。我們需要做的是設置好邊界,以及物體回彈的方向。我們設定一個邊界,當小球超出邊界時小球回彈,也就是方向改變了。以x軸為例應為:vx*=-1; 實際上你可能發現它實際上就是 vx=-vx。

但小球在回彈時要有一定的能量損失,其中還要有重力加速度的影響,當回彈速度設為1時無能量損失,其中的負號代表方向,當小于1時會產生能量損失,也就是摩擦,如:vx*=-0.1;同時不要忘了在現實生活小球還會受重力加速度的影響。

top=0;

left=0;

right=400;

bottom=300;

sping=-0.1 //彈性系數

garv=.5; //重力加速度

vx = 10;

vy = 10;

onEnterFrame = function () {

vy+=garv;

ball._x += vx;

ball._y += vy;

if(ball._x+ball._width/2>right){

ball._x=right-ball._width/2;

vx*=spring;

}

if(ball._x-ball._width/2

ball._x=left+ball._width/2;

vx*=spring;

}

if(ball._y-ball._height/2

ball._y=top+ball._height/2;

vy*=spring;

}

if(ball._y+ball._height/2>bottom){

ball._y=bottom-ball._height/2;

vy*=spring;

}

};

4 緩動(easing)

首先說明緩動的種類不只有一種。在 Flash IDE 中,就可以用 “緩動輸入”和 “緩動輸出”。下面所討論的緩動類型與運動補間的“緩動輸出”相似,即簡單的easing方式,即物體以摩擦的形式達到目的點。如果想要更復雜的easing方式,可以參看www.robertpenner.com,當然你也可以使用使用transition類或是tween類。

簡單緩動是個非常基礎概念,就是將一個物體移到別處去。問題在于物體沿著固定的速度和方向運動,到達目標點后,立即停止,顯得不夠自然。當物體向著目標有計劃地前進時,起初運動的速度很快,而臨近目標點時,速度就開始慢下來了,即它的速度向量與目標點的距離應該成比例的。下面是緩動的實現策略:

a) 確定一個數字作為運動比例系數,這是個小于 1 的分數;

b) 確定目標點;

c) 計算物體與目標點的距離;

d) 用距離乘以比例系數,得出速度向量;

e) 將速度向量加到當前物體坐標上;

f) 重復 c 到 e,直到小球到達終點。

targetx = 400;

targety = 250;

easing = .2;

onEnterFrame = function () {

dx=targetx-ball._x;

dy=targety-ball._y;

ball._x+=dx*easing;

ball._y+=dy*easing;

};

5 總結

以上的關鍵代碼雖然比較簡單,但它確是實現物體運動編程的基礎框架,你可盡情地發揮你的想象和創意,只要在這個框架之中添加一些元素或是代碼,就能制作出各種酷炫的動畫效果。

參考文獻:

[1] Peters K.Flash ActionScript 3.0 動畫教程[M].北京:人民郵電出版社,2008.

[2] 王汝義.Flash網站建設技術精粹[M].北京:人民郵電出版社,2008.

[3] 孫穎.Flash ActionScript3殿堂之路[M].北京:電子工業出版社,2007.

主站蜘蛛池模板: 亚洲国产日韩在线成人蜜芽| 精品国产一区二区三区在线观看 | 亚洲AV无码乱码在线观看裸奔| 欧美日韩高清在线| 亚洲男人天堂网址| 人妻丰满熟妇αv无码| 国产乱子伦一区二区=| 日本AⅤ精品一区二区三区日| 亚洲欧美h| 久久久精品无码一区二区三区| 日本亚洲成高清一区二区三区| 国产精品欧美激情| 欧美中文字幕在线视频| 久久大香香蕉国产免费网站| 国产呦视频免费视频在线观看| 5555国产在线观看| 免费人欧美成又黄又爽的视频| 亚洲天堂高清| 成人永久免费A∨一级在线播放| 欧美日韩午夜视频在线观看| 亚欧美国产综合| 人妻无码AⅤ中文字| 99久久精品国产自免费| 国产乱子伦视频在线播放| 99re在线免费视频| 亚洲色图欧美视频| 亚洲动漫h| 在线观看免费黄色网址| 日本不卡在线播放| 宅男噜噜噜66国产在线观看| 精品色综合| 大陆精大陆国产国语精品1024| 日本不卡在线| 人妻免费无码不卡视频| 国产精品久久久免费视频| 最新国语自产精品视频在| 欧美精品1区| 在线观看国产精品日本不卡网| 中文字幕欧美日韩| 97视频精品全国免费观看| 欧美中文字幕在线播放| 国产成人AV大片大片在线播放 | 91成人试看福利体验区| 澳门av无码| 天天做天天爱夜夜爽毛片毛片| 亚洲人成人无码www| 中文字幕调教一区二区视频| www.91中文字幕| 日韩天堂视频| 91伊人国产| 日韩美一区二区| 国产a v无码专区亚洲av| 波多野结衣一区二区三区四区视频| 91精品福利自产拍在线观看| 免费人成黄页在线观看国产| 亚洲日韩在线满18点击进入| 国产精品一老牛影视频| 2021国产乱人伦在线播放| 九九这里只有精品视频| 欧美在线黄| 呦视频在线一区二区三区| 91丝袜在线观看| 91 九色视频丝袜| 久久国语对白| 国产SUV精品一区二区6| 伊人天堂网| 亚洲精品成人片在线观看| 动漫精品啪啪一区二区三区| 91福利免费视频| 色老二精品视频在线观看| 国产主播一区二区三区| 国产福利免费在线观看| 欧洲高清无码在线| aⅴ免费在线观看| 国产最新无码专区在线| 国产精品欧美在线观看| 久久久久久久蜜桃| 欧美色图久久| 国产aⅴ无码专区亚洲av综合网| 99热国产这里只有精品无卡顿" | 蜜桃视频一区| 国产精品私拍99pans大尺度|