发表于: 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/
评论