很多人在制作MV时对歌曲的声音定位问题很烦,有很多人是一边听一边回忆一边放入歌词--这样做不仅累而且繁琐,以下推荐一种用AS来做的方法,定位精确100%!
1、预备工作:仅仅需要一个能看到播放时间的音乐播放器既可
2、开始制作:
首先新建三层,这样排列:
解释一下:
1、AS层就是用来放AS控制语句,用来控制歌词与MV的声音对应。除了第一帧,后面的全部是空白帧
2、影片层用来放你的MV的动画,在这里建议所有动画在一个MC里面完成,而不要直接在主场景上制作,这样子不仅很方便后期调整,也是一种好习惯(个人这样认为,我不喜欢用场景,喜欢用MC+AS来控制各个动画场景之间的调用,因为这样实在太方便了,而且AS也好些许多),同样除了第一帧,后面的全部是空白帧
3、歌词层就是用来放你的歌词,你可以看到歌词层后面除了第一帧是空白要害帧以外,后面所有的帧都是要害帧,第一帧空出来是因为歌曲不是一开始就有人唱的(前奏),因此前面有一段是空白没有歌词仅有音乐和动画的,因此歌词层第一帧没有歌词,而只显示上面一层的动画以及执行AS。后面几帧都是一句句歌词,用AS来控制显示,其实下面马上要讲解的AS的作用仅仅是根据歌曲播放的时间来判定是否进入下一帧,从而达到显示歌词的目的。
OK,层解释完了,因为这里主要是介绍怎样使用AS来控制歌词显示(跳转帧……),因此关于MV的动画制作部分我们就略过不讲了,下面开始解释AS层上第一帧的AS(也是整个FLASH动画中唯一的AS):
onClipEvent (load) {
//当影片载入的时候
song = new Sound();
//建立声音对象
song.attachSound("sound");
//从库中调用连接名为Sound的声音对象
song.start();
//声音对象开始播放(刚刚声音已经绑定到Song上面,以后对Song这个变量的操作就是对声音本身的操作)
inc = 0;
//给inc赋值为0
timerStart = getTimer();
//获取歌曲开始播放的时间
labelTimeList = [30.8, 40.9, 50.3, 54.8, 60.6, 64.8, 81.5, 91.6, 100.9, 105.4, 111, 115.3];
//建立一个数组,里面的数字就是歌词出现的时间,如30.8秒的时候出现第一句歌词,依此类推
}
onClipEvent (enterFrame) {
//当影片载入的时候
if (getTimer()-timerStart>labelTimeList[inc]*1000) {
//假如现在的时间(既歌曲已经播放的时间)减去歌曲开始的时间大于上面定义的数组中的一个时间,由于gettime获得的时间是毫秒单位,因此要乘以1000转换成秒
inc == inc++;
//inc递增
_parent.nextFrame();
//播放下一帧的内容
}
}
源文:
下载(FLASH MX2004格式)
下载(FLASH MX格式)
由于MP3加入后太大无法上传,因此大家可以自己找这个MP3(开头有泡泡声音的那个版本的《我是一条鱼》),加入进去然后在库中将其连接为sound就可以看到效果