1, 变量,
操作数num1,
操作数num2,
临时存储数据tempInput,
运算符operator,
文本lab,
常量:
按钮总数TOTAL,
2,创建场景对象,并添加到舞台。添加方式是按照Json文件名
3,给各按钮添加点击事件
按名字获取组件:getWidgetByName(),
名字通过字符串拼接的形式循环组合 “btn_”+i,所以给按钮起名字时格式要讲究。
添加点击事件的方式:目标.addTouchEventListener(this.回调方法.bind(this),父对象)
完整写法: getWidgetByName(“btn_”+i).addTouchEventListener(this._inputHander.bind(this),this._mainUI);
回调方法名一般以Handle结尾
4,回调事件中要给各个按键设置不同的响应:
回调函数的参数解释:sender可以理解为事件的发起者,type表示事件类型(按钮的按下,移动,抬起,取消等)
首先利用字符串拆分活的按钮图片编号,将其作为按钮名,用一个变量btn_name保存、
如果btn_name值为0-10,表示输入的是数字0-9 和 小数点,调用添加显示数据方法addInputShow():
先将小数点与普通的数字区别开来
判断当前是否已经存在小数点,如果是则后面再输入的小数点给废掉。
判断开始字符是否为0,如果是,且下一位输入的是小数点,则显示为“0.”,否则只显示输入的数字。
如果开始字符不为0,那么就直接在后面拼接。
最后将输入的字符串显示在文本框内
如果btn_name值为11,表示输入的为等号,此时需要显示计算结果。调用showResult()方法:
计算结果前首先将,当前显示的文本保存为第二个操作数。
然后清空显示框。
紧接着,根据操作符计算出对应的结果,并显示。
如果btn_name为12,13,14,15,则分别代表+-*/运算符,调用check_result()保存运算符,同时重置缓存数据,用于保存接下来输入的操作数2.
如果btn_name为18,表示复位,此时将文本框显示内容设置为0;
代码app.js部分:(<>部分的内容是用记事本写时要加的,文本类型为HTML格式)
<html>
<head>
<script>
var HelloWorldLayer = cc.Layer.extend({
//场景对象
_mainUI:null,
//按钮总数
TOTAL:19,
//保存输入的数据
_tempInput:null,
//文本
_lab:null,
//运算符类型
_tempType:null,
//第一个数