我的代码如下
function myFunction(a,b,d)
{
var R = a;
var G = b ;
var B = d ;
var L = "(";
var C = ",";
var Rp = ")";
var E = L ;
var ic = '"';
var prefix = "RGB";
var color = ic+prefix + L + R+ C + G + C + B + Rp+ic;
alert(color)
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.fillStyle = color;
}
如果我调用上面的函数,例如myFunction(10,20,30);
alert(color);
打印“rgb(10,20,30)”,但我不知道如何将颜色值赋给ctx.fillStyle
由于我想要动态应用程序,我需要传递不同的颜色值,现在代码不起作用,并且在执行代码时打印ctx.fillStyle = color;
。如果有人能告诉我如何将颜色值分配给ctx.fillStyle方法,我将感激不尽。
答案 0 :(得分:0)
只要提供的值是有效的颜色值,您就可以根据需要为所需的颜色值引用变量。
根据您提供的代码,您似乎使用RGB
代替rgb
。
答案 1 :(得分:0)
首先,“color”是一个字符串变量,并将其用作代码段使用eval();
函数。其次,在画布中设置一些可见区域以查看代码是否真正起作用,即ctx.fillRect()。最后,确保您的文档类型声明为<!DOCTYPE html>
,我希望如此。
以下是代码的工作版本(适用于FF 11.0):
<!DOCTYPE html>
<html>
<head>
<script >
function myFunction(a,b,d)
{
var R = a;
var G = b;
var B = d;
var L = "(";
var C = ",";
var Rp = ")";
var E = L ;
var ic = '"';
var prefix = "RGB";
var color = ic+prefix + L + R+ C + G + C + B + Rp+ic;
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.fillStyle=eval(color); //convert string to code.
ctx.fillRect(0,0,150,75);//any size greater than 0
}
</script>
<body>
<button onclick="myFunction(200,0,0);">click me</button>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
</body>
</html>