Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML5画布颜色帮助_Javascript_Html_Canvas - Fatal编程技术网

Javascript HTML5画布颜色帮助

Javascript HTML5画布颜色帮助,javascript,html,canvas,Javascript,Html,Canvas,嗨,我的变量中有一个简单的数组,带有一些颜色 var clr = ['#FF0000', '#0000FF', '#FFFF00', '#008000', '#FFA500', '#800080', '#ffffff']; 然后是一个函数,它应该以单引号返回其中一个值 function colors() { var color; color = "'"; color += Math.floor(Math.random() * clr.length); color

嗨,我的变量中有一个简单的数组,带有一些颜色

var clr = ['#FF0000', '#0000FF', '#FFFF00', '#008000', '#FFA500', '#800080', '#ffffff'];
然后是一个函数,它应该以单引号返回其中一个值

function colors() {
    var color;
    color = "'";
    color += Math.floor(Math.random() * clr.length);
    color += "'";
    return color;
}
然后调用此函数以显示各种颜色的球

function CreateBall(x, y, vx, vy, r, s) {
    this.color = colors();
    this.x = x;
    this.y = y;
    this.vx = vx;
    this.vy = vy;
    this.r = r;
    this.size = s;
}
但是它不起作用?你知道为什么吗


要查看完整代码,请查看此处的源代码:

目前,从
colors()
返回的值是一个类似于
“#ffffff”
的字符串。实际应用此颜色值时,将在以下行引发语法错误:

122:gradient.addColorStop(.85,ball[i].color)

这很可能是由于您将单引号包装到返回的颜色中造成的-您不需要这样做,因为它已经是一个字符串值。您也从未实际从数组中提取值。将其用于
colors()
函数:

function colors() 
{
    return cls[Math.floor(Math.random() * clr.length)];
}

这会解决你的问题

function colors() {
    return clr[Math.floor(Math.random() * clr.length)];
}

试过了,但还是不起作用?我还遗漏了什么吗?我想返回的值在colorstop中显示时遗漏了单引号。@Cameron:嘿,我的错-我专注于单引号问题,完全忽略了您没有引用数组的事实。哦,好吧;-)无论如何,我更新了我的答案,只是为了让它更完整一点。我建议你使用Firebug说我认为错误是什么,与渐变中使用的颜色不正确的字符串有关。但是呢?我尝试了下面的答案,但似乎没有解决它。有什么想法吗?我想这和引语有关。酷。那么问题出在哪里呢?在添加到clr[]部分之前,函数返回了什么?再次感谢。实际上是另一个简短的问题。我如何使它们的每种颜色的数量相等,这是一项大的工作还是相对容易实现,只是注意到一些颜色和被生成的次数太多,使它看起来很奇怪。
clr[]
是一个数组,对吗??我们正在返回数组值(颜色)。。因为我们使用的是随机函数,所以可能很难生成精确的数字(但我不会说这是不可能的)。