Flash的播放速的製做

來源:互聯網
上載者:User
  Flash的播放速率是在編輯時設定的,所以無法通過程式來動態控制,要達到類似的效果,只有採用一些小技巧。以下面的小動畫為例,方向箭頭轉動的速度(由播放速度決定)隨著滑鼠距離的遠近而發生由慢到快的轉變。

  首先做一段箭頭轉動的動畫,盡量的將幀設得多些,比如我的就設得有192幀之多。幀率提高一倍,類同於每隔一幀播放一幀,其他依次類推。為此我寫了一個函數:

function playRateCtr(movie:MovieClip, rate:Number) {
//movie :要控制播放速度的影片; rate:幀率倍數
(rate == undefined) ? rate=1 : null;
(movie == undefined) ? movie=this : null;
//設定預設的 movie 和 rate 值
var cFrame = movie._currentframe;
var nFrame = cFrame+rate;
movie.gotoAndPlay(nFrame);
}

  假設箭頭的影片名字為:logo_part_1(是我要做的logo的一部分啦 )
寫:

logo_part_1.onEnterFrame = function() {
_root.playRateCtr(this,3);
};
  那麼,箭頭動畫就將以原來三倍的幀率播放.
為了使滑鼠位置與播放速度的倍數發生關聯,又有如下函數:
function DtoRate(movie:MovieClip, rate_max:Number, tran:Number) {
//movie:影片名字:rate_max:可控制的速度最大倍數:tran:距離
//轉化為倍數時的單位
(movie == undefined) ? movie=this : null;
(rate_max == undefined) ? rate_max=3 : null;
(tran == undefined) ? tran=50 : null;
var dx = movie._xmouse;
var dy = movie._ymouse;
var dr = Math.min(rate_max, Math.floor(Math.sqrt(Math.pow(dx, 2)+Math.pow(dy, 2))/tran));
//獲得滑鼠與影片的距離,它是經過轉換的
return (rate_max-dr+1);
}
  改寫原來的onEnterFrame函數:
logo_part_1.onEnterFrame = function() {
var rate = _root.DtoRate(this,15,35);
//trace(rate);
_root.playRateCtr(this, rate);
};
  接著就可以 測試啦。因為這是採用跳幀的方法實現的,具體效果要多測試幾次,並調整動畫的幀數,才可能得到好的效果。請使用flashplayer 7觀看。



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。