论文部分内容阅读
听和读是学好英语的第一步。为了培养学生的英语听力,规范学生的正确发音,同时,也为了便于学生的自主学习,笔者借鉴歌曲演唱的KTV形式,将课上准备用的听、读材料,利用专门的软件制作成lrc格式文件,课堂上再用事先制作好的Flash课件朗读这些材料,让学生跟着朗读,通过规范朗读起到巩固学生记忆的作用,激发和提高学生学习英语的积极性。课件效果如下图所示,其源程序下载地址为:http://dfzxblb.googlepages.com/fla.rar。
课件功能及使用方法
打开Flash课件即可听到默认播放的声音,同时,也可看到与之对应的lrc文件上的文本内容在同步实时显示。通过界面上设置的按钮还可以打开任意其他位置的mp3格式文件。本课件在播放过程中支持即停即放、当前播放内容异色显示(通过界面上设置的另一按钮还可以在“整体显示”与“逐个显示”两种形式上进行切换)和随播放头拖动实时动态更新。在课堂上,该课件取代传统的录音机和一般的播放器,利用该课件进行听读的反复训练,可以强化学生对朗读材料(课文、单词等)的记忆,活跃课堂学习气氛,从视觉和听觉上多方位调动学生的学习热情。课后,学生还可以将文件下载到mp3、mp4或学习机上进行自主学习。本课件同时也可以作为中小学通用的朗读课件。
素材准备
将要进行听读的材料用专门的软件(如:LRC歌词编辑器2006)依据mp3文件制作成lrc格式文件或直接从网上进行下载,网址为http://www.pp01.cn/houtai.asp。
课件设计思路
1.采用Flash(以Flash 8为例,下同)自带的媒体播放MediaPlayback组件制作mp3播放器。使用Media-Playback组件非常方便,将其从组件菜单中拖放至所在场景中并取名如“myMedia”即可。不用自己再制作比较复杂的Flash音频播放器。
2.导入mp3、lrc文件并释放lrc文件。Lrc格式其实质是txt格式文件,可以用记事本直接打开。因此,在Flash中,导入外部lrc文件可以使用Flash内部的LoadVar方法。打开一个lrc歌词文件后,可以看到其结构由文件头和歌词组成,每一行都是由一到几个用中括号标记的时间值及该时间要显示的歌词内容组成。在Flash中具体是如何释放它们的,详见后面的as核心代码关键句(lrc内容释放)注释部分。
3.显示lrc文件内容、异色显示当前播放内容并随播放进度进行实时动态更新。在MediaPlayback中有一个playheadTime属性(播放头的当前位置),通过Flash内部的onEnterFrame 函数不断将playheadTime与lrc-temp.stime[N](第N句开始播放的时间,)进行比较,即可获得当前播放内容(第N句),再由此设置动态文本框的scroll属性(文本字段开始显示内容的位置),即可实现当前播放内容随播放进度进行实时动态更新。异色显示效果的方法,则是在原文本框显示当前播放内容的位置上面,重叠建了另一个独立的单行异色文本框并同步显示相同的内容。
as核心代码关键句(lrc内容释放)注释
function Parse(lyrics) {
//构造lrctemp对象
lrctemp = {stime:[], msg:[], long:[]};
// 逐行分解歌词文件
text_st = String(lyrics);
//去换行符,存放至str数组
var str:Array = text_st.split("\n");
var s = str.length;
var k = 0;
//逐句循环
for (var i = 0; i<s; i ) {
// 去“[”,如将“[00:58.00][02:26.00][03:15.00]相聚离开都有时候” 转换成“00:58.00]02:26.00]03:15.00]相聚离开都有时候”
var temp = Replace(str[i], "[", "");
// 去“]”,如:00:58.00,02:26.00,03:15.00,相聚离开都有时候
var my_array:Array = temp.split("]");
var n = my_array.length;
//句内逐个进行循环
for (var j = 0; j<n-1; j ) {
// 转换时间从60进制到10进制
var times = Time2Ten(my_array[j]);
// 提取歌词内容
var msgstr = my_array[n-1];
// 将提取出的时间、内容、持续时间长度存放至各数组
lrctemp.stime[k] = times;//时间
lrctemp.msg[k] = msgstr;//内容
lrctemp.long[k] = Str_Length(msgstr);//持续时间长度
k ;
}
}
// 对歌词数据进行排序
lrctemp = Order(lrctemp);
lrctemp.stime.unshift(0);
lrctemp.msg.unshift("");
//在_parent.geci_bar.show_text文本中显示全部歌词
_parent.geci_bar.show_text = "<br><br><br><br><br>";
for (m=1; m<lrctemp.msg.length; m ) {
if (lrctemp.msg[m]) {
_parent.geci_bar.show_text = lrctemp.msg[m];
}
}
_parent.geci_bar.show_text = "<br><br><br><br><br><br>";
return lrctemp;
}
课件功能及使用方法
打开Flash课件即可听到默认播放的声音,同时,也可看到与之对应的lrc文件上的文本内容在同步实时显示。通过界面上设置的按钮还可以打开任意其他位置的mp3格式文件。本课件在播放过程中支持即停即放、当前播放内容异色显示(通过界面上设置的另一按钮还可以在“整体显示”与“逐个显示”两种形式上进行切换)和随播放头拖动实时动态更新。在课堂上,该课件取代传统的录音机和一般的播放器,利用该课件进行听读的反复训练,可以强化学生对朗读材料(课文、单词等)的记忆,活跃课堂学习气氛,从视觉和听觉上多方位调动学生的学习热情。课后,学生还可以将文件下载到mp3、mp4或学习机上进行自主学习。本课件同时也可以作为中小学通用的朗读课件。
素材准备
将要进行听读的材料用专门的软件(如:LRC歌词编辑器2006)依据mp3文件制作成lrc格式文件或直接从网上进行下载,网址为http://www.pp01.cn/houtai.asp。
课件设计思路
1.采用Flash(以Flash 8为例,下同)自带的媒体播放MediaPlayback组件制作mp3播放器。使用Media-Playback组件非常方便,将其从组件菜单中拖放至所在场景中并取名如“myMedia”即可。不用自己再制作比较复杂的Flash音频播放器。
2.导入mp3、lrc文件并释放lrc文件。Lrc格式其实质是txt格式文件,可以用记事本直接打开。因此,在Flash中,导入外部lrc文件可以使用Flash内部的LoadVar方法。打开一个lrc歌词文件后,可以看到其结构由文件头和歌词组成,每一行都是由一到几个用中括号标记的时间值及该时间要显示的歌词内容组成。在Flash中具体是如何释放它们的,详见后面的as核心代码关键句(lrc内容释放)注释部分。
3.显示lrc文件内容、异色显示当前播放内容并随播放进度进行实时动态更新。在MediaPlayback中有一个playheadTime属性(播放头的当前位置),通过Flash内部的onEnterFrame 函数不断将playheadTime与lrc-temp.stime[N](第N句开始播放的时间,)进行比较,即可获得当前播放内容(第N句),再由此设置动态文本框的scroll属性(文本字段开始显示内容的位置),即可实现当前播放内容随播放进度进行实时动态更新。异色显示效果的方法,则是在原文本框显示当前播放内容的位置上面,重叠建了另一个独立的单行异色文本框并同步显示相同的内容。
as核心代码关键句(lrc内容释放)注释
function Parse(lyrics) {
//构造lrctemp对象
lrctemp = {stime:[], msg:[], long:[]};
// 逐行分解歌词文件
text_st = String(lyrics);
//去换行符,存放至str数组
var str:Array = text_st.split("\n");
var s = str.length;
var k = 0;
//逐句循环
for (var i = 0; i<s; i ) {
// 去“[”,如将“[00:58.00][02:26.00][03:15.00]相聚离开都有时候” 转换成“00:58.00]02:26.00]03:15.00]相聚离开都有时候”
var temp = Replace(str[i], "[", "");
// 去“]”,如:00:58.00,02:26.00,03:15.00,相聚离开都有时候
var my_array:Array = temp.split("]");
var n = my_array.length;
//句内逐个进行循环
for (var j = 0; j<n-1; j ) {
// 转换时间从60进制到10进制
var times = Time2Ten(my_array[j]);
// 提取歌词内容
var msgstr = my_array[n-1];
// 将提取出的时间、内容、持续时间长度存放至各数组
lrctemp.stime[k] = times;//时间
lrctemp.msg[k] = msgstr;//内容
lrctemp.long[k] = Str_Length(msgstr);//持续时间长度
k ;
}
}
// 对歌词数据进行排序
lrctemp = Order(lrctemp);
lrctemp.stime.unshift(0);
lrctemp.msg.unshift("");
//在_parent.geci_bar.show_text文本中显示全部歌词
_parent.geci_bar.show_text = "<br><br><br><br><br>";
for (m=1; m<lrctemp.msg.length; m ) {
if (lrctemp.msg[m]) {
_parent.geci_bar.show_text = lrctemp.msg[m];
}
}
_parent.geci_bar.show_text = "<br><br><br><br><br><br>";
return lrctemp;
}