FLASH打字游戏教程:字母练习
功能:26个字母练习,含大小写。背景音乐可切换,背景图片也可以切换。捡到一个苹果加20分,捡到一个西瓜,加100分。
游戏展示:
源码: test_ball_study.rar
里面主要代码教程:(把代码发在这里,希望大家能提建议。代码能否更精简...)第一帧的代码:
//定义nub,为下面的球体复制做准备...
var num:Number = 0;
//定义xian,此处设置的目的为当球下落到一定程序的时候(即超出屏幕的范围的时候),运行后面的程序,此方法的目的是为了
//让系统不会因为复制太多球体而变得很慢.此处的值是场景的y值,可以随便设...
var xian:Number = 450;
//定义新my_array类,此处为随机出现在黄色球体中的文字,内容可以自己随便加入...
var my_array:Array = new Array();
my_array = ["欢", "迎", "光", "临", "淘", "沙", "网"];
//定义加载第一个球体函数...
function jiazai_ball1() {
//num的值不断递加...
num++;
//定义一个变量ball2,变量的对象为复制第一个球体为新实例名为"第一个球+num"到num层...
var ball2 = attachMovie("ball", "ball"+num, num);
//定义ball2的x座标值为随机数...
ball2._x = Math.floor(Math.random()*750);
//此处运用一个语句switch...即可选择性调用函数...
switch (moshi_txt.text) {
case "小写练习" :
//此处返回一个随机值...
numb = random(26)+97;
//此处不要忘了跳出语句...
break;
case "大写练习" :
numb = random(26)+65;
break;
//这个函数,我是第一次用到,感谢酱色度,还有小南,当然最感谢的还是Hbro...
//当前面的条件都不成立时,就运行下面的程序...
default :
moshi_txt.text = "综合练习";
//这里,又要用到变量.先定义一个变量...这里有点难度.即是说:当前面都不成立的时候,就用到这里.而且要包含两种可能.
//这个时候,就又要用到随机函数了...这个随机函数其实是属于整个default程序的...
var xuan_tt = random(2);
if (xuan_tt == 1) {
numb = random(26)+97;
} else {
numb = random(26)+65;
break;
}
}
ball2.onEnterFrame = function() {
//当ball2运行的时候,就移动y座标,这样才能形成动画...
this._y += 3;
if (this._y>=xian) {
//当移动到一定位置的时候,就删除影片.这样,才不会形成系统越来越慢......
removeMovieClip(this);
}
};
//球体上的动态文本框中的文本就将上面的随机字符转换为编码.每个键盘按键都对应得有一个编码的...具体可以查询:
//http://www.taoshaw.com/taoshaw/article.asp?id=1309
ball2.text.text = String.fromCharCode(numb);
}
//此处为复制的另一个球体的函数...
function jiazai_ball2() {
var ball3 = attachMovie("balld", "balld"+num, num);
ball3._x = Math.floor(Math.random()*750);
ball3.onEnterFrame = function() {
this._y += 5;
if (this._y>=xian) {
removeMovieClip(this);
}
};
numb = random(26)+97;
/*如果希望黄色的小球也出现随机字母,则使用ball3.text.text=String.fromCharCode(nmub);*/
ball3.text.text = my_array[Math.floor(Math.random()*my_array.length)];
}
//将刚才的球体加载函数调用进场景中......
function diao1() {
jiazai_ball1();
}
function diao2() {
jiazai_ball2();
}
//设置diao1函数调用的时间半隔......
id1 = setInterval(diao1, 1000);
id2 = setInterval(diao2, 5000);
xiaoxie_btn.onRelease = function() {
moshi_txt.text = "小写练习";
};
daxie_btn.onRelease = function() {
moshi_txt.text = "大写练习";
};
var num:Number = 0;
//定义xian,此处设置的目的为当球下落到一定程序的时候(即超出屏幕的范围的时候),运行后面的程序,此方法的目的是为了
//让系统不会因为复制太多球体而变得很慢.此处的值是场景的y值,可以随便设...
var xian:Number = 450;
//定义新my_array类,此处为随机出现在黄色球体中的文字,内容可以自己随便加入...
var my_array:Array = new Array();
my_array = ["欢", "迎", "光", "临", "淘", "沙", "网"];
//定义加载第一个球体函数...
function jiazai_ball1() {
//num的值不断递加...
num++;
//定义一个变量ball2,变量的对象为复制第一个球体为新实例名为"第一个球+num"到num层...
var ball2 = attachMovie("ball", "ball"+num, num);
//定义ball2的x座标值为随机数...
ball2._x = Math.floor(Math.random()*750);
//此处运用一个语句switch...即可选择性调用函数...
switch (moshi_txt.text) {
case "小写练习" :
//此处返回一个随机值...
numb = random(26)+97;
//此处不要忘了跳出语句...
break;
case "大写练习" :
numb = random(26)+65;
break;
//这个函数,我是第一次用到,感谢酱色度,还有小南,当然最感谢的还是Hbro...
//当前面的条件都不成立时,就运行下面的程序...
default :
moshi_txt.text = "综合练习";
//这里,又要用到变量.先定义一个变量...这里有点难度.即是说:当前面都不成立的时候,就用到这里.而且要包含两种可能.
//这个时候,就又要用到随机函数了...这个随机函数其实是属于整个default程序的...
var xuan_tt = random(2);
if (xuan_tt == 1) {
numb = random(26)+97;
} else {
numb = random(26)+65;
break;
}
}
ball2.onEnterFrame = function() {
//当ball2运行的时候,就移动y座标,这样才能形成动画...
this._y += 3;
if (this._y>=xian) {
//当移动到一定位置的时候,就删除影片.这样,才不会形成系统越来越慢......
removeMovieClip(this);
}
};
//球体上的动态文本框中的文本就将上面的随机字符转换为编码.每个键盘按键都对应得有一个编码的...具体可以查询:
//http://www.taoshaw.com/taoshaw/article.asp?id=1309
ball2.text.text = String.fromCharCode(numb);
}
//此处为复制的另一个球体的函数...
function jiazai_ball2() {
var ball3 = attachMovie("balld", "balld"+num, num);
ball3._x = Math.floor(Math.random()*750);
ball3.onEnterFrame = function() {
this._y += 5;
if (this._y>=xian) {
removeMovieClip(this);
}
};
numb = random(26)+97;
/*如果希望黄色的小球也出现随机字母,则使用ball3.text.text=String.fromCharCode(nmub);*/
ball3.text.text = my_array[Math.floor(Math.random()*my_array.length)];
}
//将刚才的球体加载函数调用进场景中......
function diao1() {
jiazai_ball1();
}
function diao2() {
jiazai_ball2();
}
//设置diao1函数调用的时间半隔......
id1 = setInterval(diao1, 1000);
id2 = setInterval(diao2, 5000);
xiaoxie_btn.onRelease = function() {
moshi_txt.text = "小写练习";
};
daxie_btn.onRelease = function() {
moshi_txt.text = "大写练习";
};
元件"ball"中第一帧的代码:
stop();
//定义鼠标侦听类...
var keyListener = new Object();
keyListener.onKeyDown = function() {
//判断键盘转化的符号与球体的动态文本框中的内空所对应的编码是否符合...
if (text.text.charCodeAt(0) == Key.getAscii()) {
gotoAndPlay(2);
}
};
Key.addListener(keyListener);
//定义鼠标侦听类...
var keyListener = new Object();
keyListener.onKeyDown = function() {
//判断键盘转化的符号与球体的动态文本框中的内空所对应的编码是否符合...
if (text.text.charCodeAt(0) == Key.getAscii()) {
gotoAndPlay(2);
}
};
Key.addListener(keyListener);
补充:flash教程,Flash游戏