需要帮助解密javascript五彩纸屑的代码

时间:2017-10-02 14:21:29

标签: javascript

javascript五彩纸屑的代码是here

我试图定义五彩纸屑的颜色,而不是让它们随机(默认设置)。

我发现用于决定颜色的变量是一个名为colorThemes的数组,它包含多种颜色:

var colorThemes = [
  function() {
    return color(200 * random()|0, 200 * random()|0, 200 * random()|0);
  }, function() {
    ......
  }, function() {
    ......
  }, 

但是在我将第一个数组项更改为以下格式后,所有五彩纸屑都变成了相同的颜色(在这种情况下为白色):

var colorThemes = [
  function() {
    return 'rgb(255, 255, 255)';
  },

第191行似乎控制颜色是随机选择还是第一个:

var theme = colorThemes[onlyOnKonami ? colorThemes.length * random()|0 : 0]

我曾尝试更改它以试图强制选择随机颜色,但仍然没有运气:

var theme = colorThemes[colorThemes.length * random()|0]

1 个答案:

答案 0 :(得分:1)

因此,当颜色在第191行设置时,它会在" addConfetto"之前设置。调用函数,该函数基于展开设置递归调用以创建新粒子。由于主题函数已经确定,因此每个粒子都使用相同的粒子。有两个选项,您可以创建一个从预定义颜色数组中返回随机颜色的函数,并使用它而不是随机选择的函数,如下所示:

colorTheme(){
    var colors = [
        "rgb(255, 255, 255)",
        "rgb(0, 255, 255)",
        "rgb(255, 255, 0)"
    ];
    return colors.length * random|0;

}

并将191更改为:

var theme = colorTheme;

或者深入了解Confetti类并改变第137行调用主题函数的位置:

innerStyle.backgroundColor = colorThemes[Math.floor(colorThemes.length * random())]();