快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

Flash的播放速的制做

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


返回类别: Flash教程
上一教程: 全Flash网站制作剖析-3
下一教程: Flash AS学习:oop的经典教程-as2.0篇

您可以阅读与"Flash的播放速的制做"相关的教程:
· 控制PPT课件中Flash歌曲的播放
· 关于控制影片的播放和倒退
· Flash8播放器模型:弹性跑道
· Flash8.0专业版及播放器新特性
· Flash中卡通人物的急速跑步的制作
    微笑服务 优质保证 索取样品