首先做一段箭头转动的动画,尽量的将帧设得多些,比如我的就设得有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);
};那么,箭头动画就将以原来三倍的帧率播放.(3lian素材)
为了使鼠标位置与播放速度的倍数发生关联,又有如下函数: 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);
};