Flash的播放速的制做
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-11
|
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观看。
关键词: |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn
为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
|