练习:算术练习器
本练习由程序出100以内的加减乘除题,由用户计算,再由程序判定计算是否正确.通过本练习可以实践各种文本框的应用,同时也可对前面各课介绍的基础知识进行综合应用,如函数,条件语句,数组,运算符等.下面来制作这个练习器:
新建一flash文档:
1.用文本工具在舞台上方居中画一文本框,打开属性面板,选择静态文本,设置好字体、大小、颜色等属性.在文本框中输入:"算术练习器".
2.在稍下面一点再画一个文本框,类型为动态文本,设置其它属性.不要边框.该文本框用于显示算术题目,文字较多,且要显示两行,所以请选择"多行".将该文本框命名为:tm_txt.
3.在下面再画一文本框,类型为输入文本.命名为da_txt.该文本用于用户输入答案.设置其它属性.点下边框按钮.需要注意的是,在属性面板右下角,有一"自动调整字距"选项框,切莫打钩.因为该文本框中输入的内容为数字,此项打钩后文本内容将变为字符,那么将会导至后续程序失败.所以请记住凡是需要参加计算的数字文本不能选择此项.
4.新建两个按钮元件,标签分别为:"确定"、"下一题",将两个按钮放到舞台下方,注意应与第三个文本框之间间隔一定距离,因为我们还要在运行时创建一个文本框用于显示答题的结果.打开属性面板,将两个按钮分别命名为:qd_btn、xyt_btn.
5.好了现在开始写代码:新建一层,命名为:action,打开帧动作面板
首先声明三个变量用来存放两个参与计算的数字及答案.
var a:Number;
var b:Number;
var jg:Number;
下面开始出题,程序刚打开时首先应出好题目,做完一道题点击下一题时又要出一次题目,这就是说出题的代码将重复使用,请养成良好的习惯,将要重复使用的代码做成函数,以免重复输代码.我们也借此练习一下函数的声明及调用.接着写代码:
function ct(){ //声明了一个叫ct的函数
a=random(99)+1;//加1就避免了算数出现0的情况.
b=random(99)+1;
var ysfz:Array=new Array("+","-","*","/");//声明了一个数组用于存放运算符.
var ysfs =random(4);//产生一个0一3的随机数用于提取数组ysfz中的运算符.
var ysf=ysfz[ysfs];//提取了运算符.
tm_txt.text="请计算:"+a+ysf+b+newline+"除法请去掉余数";//通过动态文本框将题目显示出来
switch(ysfs){ //用一个条件语句计算结果
case 0:
jg=a+b;
break;
case 1:
jg=a-b;
break;
case 2:
jg=a*b;
break;
case 3:
jg=int(a/b);
break;
}
}
ct();//调用ct()函数,题就出好了.
接下来是点击”确定”按钮时,判断用户是否回答正确,并给出结论:
qd_btn.onRelease = function(){
createTextField("jg_txt",0,170,250,200,50);//在运行时创建了一个文本框,这里文本框的坐标就根据实际位置确定.
if(da_txt.text ==jg){ //如果用户在输入文本中输入的数字等于题的结果
jg_txt.text = "回答正确";//创建的文本框显示”回答正确”
} else { //否则
jg_txt.text = "回答不正确";//创建的文本框显示”回答不正确”
}
}
最后是点击”下一题”按钮时,重新出题,输入文本框清空,删除运行时创建的文本:
xyt_btn.onRelease=function(){
da_txt.text="";//清空输入文本
jg_txt.removeTextField();//删除运行时创建的文本
ct();//调用ct()函数重新出题.
}
作业:制作算术练习器