复杂做法·计算器做法 |
| 作者:佚名 来源:不详 更新:2007-1-13 20:49:10 错误报告 我要投稿 |
以下是示范:
点击浏览该文件 示范源码:
点击浏览该文件
思路: 按钮1~9是数字,当按下按钮前,输入的是加、减、乘、除数,按下符号后所输入的是被加、被减、被乘、被除数 加、减、乘、除数存储在动态文本t1中 被加、被减、被乘、被除数存储在动态文本t2中 +-*/符号存储在动态文本fhpd中 判断是否按下+-*/从而决定是否输入的是被加、被减、被乘、被除数的变量存储在fdpd2中(做完才发现这样做复杂了……不过懒得改了,会的大家自己改吧HOHO) 另外,我写完了教程才发现……我忘了做0的按钮和小数点……不过道理是一样的,大家自己加吧
插入组建篇: 首先在场景上画出各个按钮,并且插入几个动态文本,实例名以及排列如下图所示:
 (图1)
AS编写篇: 首先,在第一帧加入AS,初始化变量:
a=0 t1="" t2="" t3="" fhpd=1
数字的按钮1上面加上AS:
on (click) { //当单击按钮的时候 if (_root.fhpd != 0) { //如果主场景上fhpd这个动态文本的值不等于0,则执行以下AS _root.t1 = _root.t1+1; //主场景上的t1这个动态文本的值为t1本身的值累加一个1(不是在本身上面加1,比如原来是9,按下1后则是91,而不是10)等下有解释。 _root.txt=_root.t1 //主场景上txt这个动态文本框的值等于t1这个动态文本框的值(就是加减乘除数),就是在最上面的最终答案显示区的那个显示现在所输入的数字,具体样子可以参考WINDOWS的计算器 } else { //否则(既fhpd的值等于0的时候),执行以下AS: _root.t2 = _root.t2+1; //主场景上t2的值(就是被加减乘除数) _root.txt=_root.t2 //主场景上txt这个动态文本框的值等于t2这个动态文本框的值(就是加减乘除数),就是在最上面的最终答案显示区的那个显示现在所输入的数字,具体样子可以参考WINDOWS的计算器 } }
注意到AS中红色的“1”了吗?因为这段AS是写在按钮1上的,所以这里是让没按下一次1则t1的值为t1+1,比如t1现在的值是9,按下一次1后t1的值就是91了。 依此类推,按钮2的代码就是:
on (click) { if (_root.fhpd != 0) { _root.t1 = _root.t1+2; _root.txt=_root.t1 } else { _root.t2 = _root.t2+2; _root.txt=_root.t2 } }
明白了吗?每个数字按钮的AS其实只是改了红色标记处的数字而已,呵呵C/V吧~ 好了,数字按钮的AS加完了,那么现在来加符号的AS:
on (click) { //当按下加号时执行以下AS _root.fhpd=0 //主场景上fhpd的值为0,既按下运算符号后,输入加减乘除数的模式转换为被加减乘除数的模式 _root.fhpd2="+" //主场景上fhpd的值为字符+,这是为了让后面的等号去吧t1/t2/fhpd3个动态文本结合起来运算 }
呵呵,注意到上面红色的“+”了吗?是,是,聪明的你已经想到了,在其他的符号(-*/)上也是复制以上AS,直接更改+为-*/既可了,呵呵,聪明~
然后,就是重要角色-等号的AS了:
on (click) { //当点击等号这个按钮的时候,执行以下AS: if (_root.fhpd2 == "+") { //如果fhpd2(既刚刚存储+-*/符号的那个动态文本)为字符串+,则执行以下AS: _root.txt = Number(_root.t1)+Number(_root.t2); //主场景上txt这个动态文本的值(既最终输出答案的那个动态文本框)的值为动态文本框t1的值加上动态文本框t2的值,既在上面显示加法的最终答案 _root.fhpd="" //清空fhpd的值,为了下一次计算做准备 _root.t1="" //清空t1的值,为了下一次计算做准备 _root.t2="" //清空t2的值,为了下一次计算做准备 } else if (_root.fhpd2 == "-") { _root.txt = Number(_root.t1)-Number(_root.t2); _root.fhpd="" _root.t1="" _root.t2="" } else if (_root.fhpd2 == "*") { _root.txt = Number(_root.t1)*Number(_root.t2); _root.fhpd="" _root.t1="" _root.t2="" } else if (_root.fhpd2 == "/") { _root.txt = Number(_root.t1)/Number(_root.t2); _root.fhpd="" _root.t1="" _root.t2="" } }
注意到以上代码吗?我为什么只写明了+的注释呢?聪明+醒目的你应该已经注意到红色的+号了吧?HOHO对了,就是-下面的AS一样,只是更改红色+号部分为-*/了HOHO
这一步已经可以说是完成了,不过~计算器都有一个清空的功能吧?恩,就是图1的最终答案输出框(txt)旁边的cls那个按钮
呵呵,这个按钮的AS最简单,就是把所有的动态文本框清零既可:
on (click) { _root.txt = ""; _root.t1 = ""; _root.t2 = ""; _root.fhpd = ""; _root.fhpd2 = ""; }
OK~完成~这个做法很复杂,也是做完后才发现的……若大家需要,下次给个相对简单的做法和思路出来
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |