转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 电脑应用 >> 电脑技术 >> 正文
一个动态控制动画播放速度的技巧         ★★★

一个动态控制动画播放速度的技巧

作者:闵涛 文章来源:闵涛的学习笔记 点击数:934 更新时间:2004/6/23

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观看。


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · 电脑技术  · 操作系统
    · 磁盘工具  · 视音频技术
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台