发表于: 2017-03-16 23:52:43

1 729


今天完成的事情:完成了js任务一,消灭字母游戏更新

明天计划的事情:做任务二

遇到的问题:

之前任务一的js写的很烂。今天把重新写了一遍,主要是把一些模块封装成了函数。

有这几个函数:

1.生成任意数量任意范围的随机数(可重复)

2.生成任意数量任意范围的随机数(不可重复)

3.将一组rgb转化为16进制(输入三个十进制输,返回16进制颜色值)

利用tostring完成

4.生成任意组16进制颜色值

利用第1个和第3个函数完成

5.改变九宫格颜色

注意这个函数前面要写一个将所有九宫格颜色重置,再改变三个格子的颜色。不重置九宫格颜色的话,就会变成这样:

而不是:


6.开始变色的函数,由开始按钮点击触发

先声明全局个变量timer,作为定时器。

var timer = null;

利用setIterval周期执行改变九宫格颜色的函数

function start() {
   clearInterval(timer);
   timer = setInterval("changeColor(3);", 1000);
}


7.暂停

利用clearIterval。 为了实现第二次点击暂停后继续变色,这里定义了一个全局变量pauseFlag,作为标识

var pauseFlag = true;//暂停标变量


function pause() {
   if (pauseFlag) {
       if (timer)clearInterval(timer);
   }

   else {
       timer = setInterval("changeColor(3);", 1000);
   }
   pauseFlag = !pauseFlag;
}


8.重置

先将九宫格颜色复位,再

timer = setInterval("changeColor(3);", 1000);

收获:

之间遇到了个bug,有小概率只有两个格子变色。一开始以为是随机数给重复了,利用console.warn();排查了一下发现不是九宫格序号随机数的问题。于是再排查颜色的问题,利用console.warn(); 发现有的16进制颜色值只有5位,再次排查与颜色值相关的函数后,发现是“将一组rgb转化为16进制”这个函数出了问题:一个变量名写成了一个变量名了。

虽然找出来bug的原因,但是这样还是效率太低了。

补一个消灭字母的游戏链接:http://gouliguojia.com/js-task/dajiji/


返回列表 返回列表
评论

    分享到