AS3基础教程-第20课-加法运算小程序(中)
1、将重命名为20.fla的文件用flashCS6打开,我们先设计界面。
因为本节课需要告知读者做题的进度,故需要新增一个动态文本,我们在 图层1 内,使用文本工具,设置为动态文本,实例名设置为 jindu_txt
如下图所示,设置其属性

2、打开动作面板,我们直接修改代码。
首先,需要新增两个变量,一个用于存储当前题目的题号,另一个用于存储题目的上限(本教程设为10道题)。
因为题目的上限一经设定将不被允许修改,故此将其设为常量,更好一些。
变量与常量有何不同呢?
<1>变量用var关键字定义;常量用const关键字定义
<2>变量定义时可以赋值,也可以不赋值;常量在定义的时候必须赋值,否则报错
<3>变量的值在后续代码中可以随时进行修改;常量的值在定义时就被限定住了,后续代码中不允许被修改
于是乎,我们在原先代码的最上面新增下面的两行代码:
var dqtm:uint=1//存储当前题目
const zgtm:uint=10//存储总共题目
3、我们需要实现下面的效果:
flash文件一打开,就自动出题,也就是第一道题。按钮的作用就是切换到下一题。
那么,flash文件打开时就需要执行num1和num2的随机生成数字的代码,单击按钮的时候也要执行重复的代码。所以,为了节约篇幅,我们将出题的代码定义成函数,然后使用的时候直接调用即可。
看现有代码的下面一段:
num1=Math.random()*100
num2=Math.random()*100
asw=num1+num2
num1_txt.text=String(num1)
num2_txt.text=String(num2)
上述代码中的前两行就是用于生成2个随机数
第三行是将这两个随机数相加并赋值给asw变量,
后面两行代码是用于显示舞台上的两个动态文本的
我们将整个这一段代码单独抽离出来,定义到一个函数体的内部。
具体操作步骤是,最上面敲一下回车,新增下面的代码:
function chuti(){
在最下面敲一下回车,新增下面的代码:
}
修改后的代码如下图。如此一来,将出题的代码定义成一个名为chuti()的函数,后面需要用到的时候,直接执行chuti()即可

4、由于一打开flash文件就需要出题,因此,我们在上面的函数体的后面,直接调用之。
又由于每次单击按钮也要出题,故此,在按钮内部直接调用之。这里需要注意,必须将调用的代码放在判断的后方,也就是说,需要先让flash判断完毕当前的题目,然后再出下一题。
如下图所示新增两行调用的代码。

5、现在来处理题目的进度,我准备使用下面的形式进行呈现:
当前题目/总题目
故此,将题目的进度放入出题函数的内部即可,我们在代码的第8行的函数体内部,新增如下的一行代码:
jindu_txt.text=""+dqtm+"/"+zgtm

6、接下来,需要在按钮单击的内部,修改dqtm的数值,每单击一次按钮,dqtm的值就+1,故此使用自加运算符即可。
需要特别注意,添加的位置,见下图,将
dqtm++
这一行代码,必须加在判断语句和chuti()之间!

7、现在已经可是实现出多道题的要求,但是题目到了10之后,单击按钮还会增加,因此需要做一下限制。新增一个判断语句即可。
我们将最后面的这两行代码:
dqtm++
chuti()
用一个判断语句圈起来即可,修改后的代码如下:
if(dqtm<zgtm){
dqtm++
chuti()
}

8、如此一来,我们本节课的目的终于完美的实现了。
不过,测试的时候,我们可能有这样的想法:
如果观众没有向输入文本框内输入任何的数字,而是直接点击按钮,就会跳转到下一题!
可否做一下设置,必须让观众输入数字后,才可以跳转到下一题?
答案是肯定的,我们下节课再行修改。请不要忘记保存本节课的fla文件哦