永发信息网

各位FLASH好手们 中间帧频加速

答案:1  悬赏:20  手机版
解决时间 2021-07-25 19:03
  • 提问者网友:我一贱你就笑
  • 2021-07-25 11:10


你们好,我现在做一段小的FLASH,其中某些祯想以比较慢的速度播放,比如,1-100祯是12fps,101-110我想以20fps这种比较快的速度播放过去.求一段这样的代码.
PS.延长祯的方法我也想到了,但是那样占空间相对来说比较大吧?而且看祯那么多也不美观.最好直接发代码(有点注释最好拉)或直接有代码的页拉.不要发那种目录样的页.找着也很闷的- -!

var i:Number = 0;
var speed:Number = 4;
_root.onEnterFrame = function() {
trace(_currentframe);
if (_currentframe>=20) {
if (i%speed == 0) {
nextFrame();
trace(i);
}
i++;
}
};

上面的代码意思就是当播放到第20帧的时候后面的速度就是原来的1/4。

最佳答案
  • 五星知识达人网友:痴妹与他
  • 2021-07-25 12:46

空白帧 不会增加体积


空白帧只是上一帧的延续


1~100帧 共100帧 以12帧速度播放


101~110帧 共10帧 以20帧速度播放



flash文件可以选择本身的播放帧数FPS 后面的数字就代表当前flash的播放帧数


一般以大的来选 按你的需求就是20帧



然后解决怎么以20帧的速度播放12帧的动画


最简单的方法是加入空白帧 在时间轴点击F5快捷键就可以添加空白帧了


20-12=8 也就是说你要把12帧变成20帧 要添加8个空白帧


8个空白帧插入的地方要你自己决定


因为我不知道你做的动画 是逐帧动画 还是补间混合



In a word,来说100帧/12帧=播放秒数 大约8秒


8秒乘以 20帧=160帧


你大约要添加60帧的空白帧在12帧播放的100帧中



如果你一定要用代码的话


请参考 timer 组件


控制播放的速度


在1~100帧中


AS3中 var t:Timer=new Timer(每N时间触发一次)


N=1秒 除以你需要的帧速 再乘以1000 (毫秒单位)


比如 你需要的帧数=20


N=1/20 *1000=50;


注意你flash 播放帧数要大于20 timer才会在每20帧触发一次


然后给t 添加监听 ,函数执行控制时间轴播放一帧


然后t.start();



101帧后 同理设置


PS:不推荐这种播放方法


PS2: AS2代码 看不太懂


不过你监听的每帧触发一次 函数中 代码处理的速度很快的


不会达到你预想的效果

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯