function Color (opt) { if (opt.length == 3) { this.r = opt[0]; this.g = opt[1]; this.b = opt[2]; this.a = 1; } else if (opt.length == 4) { this.r = opt[0]; this.g = opt[1]; this.b = opt[2]; this.a = opt[3]; } } Color.prototype.toString = function(){ return "rgba(" + this.r + "," + this.g + "," + this.b + "," + this.a + ")"; } Color.prototype.rgb = function(){ return [ this.r, this.g, this.b ]; } Color.prototype.rgba = function(){ return [ this.r, this.g, this.b, this.a ]; } Color.prototype.hsl = function(){ } Color.prototype.copy = function(){ return new Color( this.rgba() ); } Color.prototype.alpha = function(a){ var c = this.copy() c.a = a; return c; } Color.prototype.swatch = function(){ var that = this; var el = document.createElement("div"); el.className = "swatch"; el.style.backgroundColor = this.toString(); document.getElementById("palette").appendChild(el); el.onclick = function(){ color = that; makeBrushes(); brush = brush.copy({ color: color }); } } var colors = { red: new Color([ 255,0,0,0.1 ]), blue: new Color([ 0,0,255 ]), black: new Color([ 0,0,0 ]), green: new Color([ 0,128,0 ]), cyan: new Color([ 0,255,255 ]), yellow: new Color([ 255,255,0 ]), peru: new Color([ 205,133,63 ]), } for (var c in colors) { if (colors.hasOwnProperty(c)) { colors[c].swatch(); } } var color = colors.black;