1个回答
推荐于2017-09-17
展开全部
FLASH中轻松实现音乐与字幕同步
有过FLASH动画经历的人都知道,声音与字幕同步是动画制作的重点、难点和烦点。为了解决这个问题,我试着用FLASH中的脚本实现了音乐与字幕的同步,效果居然不错。前几日,在网上我看到了类似的方法,试过后发现还有一些问题,于是结合以前我所做的方法对代码进行了修改。这样,制作动画就更加简单、更为实用了。即便是对FLASH脚本不太了解的人,只要你按照下面的方法操作,相信你会节省很多时间的。
首先,先新建一个FLASH文档(本人使用的是FLASH8)。
第二步,单击“文件/导入/导入到库”,将一音乐文件(如‘月半弯.mp3’)导入到库中。
第三步,将库打开,在音乐文件上右击设置其属性为:标志符为‘yinyue’;在链接中将选中‘为ActionScript导出’。
第四步,返回场景,在场景中加入一文本框放并设置其属性为:动态文本;变量:gecixsh(用来显示歌词);其它属性如文本框的大小、字体、位置等可根据情况自己设置。
第四步,选定该帧,添加帧动作:
xshtime=[11,15,20,26,30,35,40,45,51,56,62,67,74,77,82,88];
//用来显示每句歌词的显示时间,单位为秒,数据的获得在后面有说明;
geci=["那夜真的好浪漫",
"我带你去看月半弯",
"有点害羞却很幸福 ",
"这种感觉我很喜欢",
"让我温柔靠近你身边",
"你也紧紧陷入我臂弯",
"感觉爱情悄悄来临 ",
"纷纷扰扰与我无关 ",
"夜色初凉人又渴望 ",
"眼神交换 ",
"原来恋爱现场感觉 ",
"不想像的那样主观 ",
"月半弯好浪漫 ",
"月光下的你显得特别的好看 ",
"月半弯我喜欢 ",
"有情有义有你还有天",
"有情有义有你",
"还有月半弯还有月半弯" ];
//以上是歌词的内容,如果音乐中有间奏,可加入" "补充;
music = new Sound();
music.attachSound("yinyue");
music.start();
_root.onEnterFrame=function(){
pos=music.position; //得到音乐的播放时间,单位为毫秒;
if (Key.isDown(77)) {
trace(math.round(pos/100)/10); //取到0.1秒
//当按下‘M’键时,显示当前音乐播放的时间,生成影片后不再起作用
}
for(i=1;i if(pos>xshtime[i-1]*1000){
gecixsh=geci[i-1]; //显第i句歌词的时间;
}
}}
第五步,歌词出现时间的获取。
gecixsh[]中每句歌词出现的时间可以用音乐播放器获得,也可以用上面提供的代码获得。其方法为:测试影片,单击‘M’键记录每句歌词的开始时间(甚至是前一句句歌词的结束位置),这时应注意一个问题,当按键时间过长时,可能会出现两个连续的记录,在记录到gecixianshi []中时应当去掉一个。最后将对话框中的数据写入gecixianshi []中,如上面的代码所示。
第六步,测试影片并对歌词出现时间进行调试,直到满意为止。
最后你只需将该帧以及音乐文件拷到动画的相应位置就可以了。当然,这时一定要该帧其延伸到动画的最后一帧,还可以在最后一帧中加入语句music.stop()让音乐停止播放。
有过FLASH动画经历的人都知道,声音与字幕同步是动画制作的重点、难点和烦点。为了解决这个问题,我试着用FLASH中的脚本实现了音乐与字幕的同步,效果居然不错。前几日,在网上我看到了类似的方法,试过后发现还有一些问题,于是结合以前我所做的方法对代码进行了修改。这样,制作动画就更加简单、更为实用了。即便是对FLASH脚本不太了解的人,只要你按照下面的方法操作,相信你会节省很多时间的。
首先,先新建一个FLASH文档(本人使用的是FLASH8)。
第二步,单击“文件/导入/导入到库”,将一音乐文件(如‘月半弯.mp3’)导入到库中。
第三步,将库打开,在音乐文件上右击设置其属性为:标志符为‘yinyue’;在链接中将选中‘为ActionScript导出’。
第四步,返回场景,在场景中加入一文本框放并设置其属性为:动态文本;变量:gecixsh(用来显示歌词);其它属性如文本框的大小、字体、位置等可根据情况自己设置。
第四步,选定该帧,添加帧动作:
xshtime=[11,15,20,26,30,35,40,45,51,56,62,67,74,77,82,88];
//用来显示每句歌词的显示时间,单位为秒,数据的获得在后面有说明;
geci=["那夜真的好浪漫",
"我带你去看月半弯",
"有点害羞却很幸福 ",
"这种感觉我很喜欢",
"让我温柔靠近你身边",
"你也紧紧陷入我臂弯",
"感觉爱情悄悄来临 ",
"纷纷扰扰与我无关 ",
"夜色初凉人又渴望 ",
"眼神交换 ",
"原来恋爱现场感觉 ",
"不想像的那样主观 ",
"月半弯好浪漫 ",
"月光下的你显得特别的好看 ",
"月半弯我喜欢 ",
"有情有义有你还有天",
"有情有义有你",
"还有月半弯还有月半弯" ];
//以上是歌词的内容,如果音乐中有间奏,可加入" "补充;
music = new Sound();
music.attachSound("yinyue");
music.start();
_root.onEnterFrame=function(){
pos=music.position; //得到音乐的播放时间,单位为毫秒;
if (Key.isDown(77)) {
trace(math.round(pos/100)/10); //取到0.1秒
//当按下‘M’键时,显示当前音乐播放的时间,生成影片后不再起作用
}
for(i=1;i if(pos>xshtime[i-1]*1000){
gecixsh=geci[i-1]; //显第i句歌词的时间;
}
}}
第五步,歌词出现时间的获取。
gecixsh[]中每句歌词出现的时间可以用音乐播放器获得,也可以用上面提供的代码获得。其方法为:测试影片,单击‘M’键记录每句歌词的开始时间(甚至是前一句句歌词的结束位置),这时应注意一个问题,当按键时间过长时,可能会出现两个连续的记录,在记录到gecixianshi []中时应当去掉一个。最后将对话框中的数据写入gecixianshi []中,如上面的代码所示。
第六步,测试影片并对歌词出现时间进行调试,直到满意为止。
最后你只需将该帧以及音乐文件拷到动画的相应位置就可以了。当然,这时一定要该帧其延伸到动画的最后一帧,还可以在最后一帧中加入语句music.stop()让音乐停止播放。
一诺动画
2024-10-27 广告
2024-10-27 广告
Flash动画制作在北京一之诺文化传媒有限公司是一项创意与技术并重的服务。我们团队精通于利用Flash或兼容技术,将客户的想象转化为生动、流畅的动画作品。从概念设计到分镜脚本,再到精细的绘制与后期特效处理,每一步都力求完美呈现。无论是广告动...
点击进入详情页
本回答由一诺动画提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询