⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 colorutil.js

📁 A simple object to store a color and perform Hex/RGB conversions. methods included ColorSetRGB -
💻 JS
字号:
// a string constant used for decimal-hex-conversion (see helper functions at the bottom)var HEXVALUES = "0123456789ABCDEF";// ---------------------------------------------------------------------------/* * Color * A simple object to store a color and perform Hex/RGB conversions. * *//* * Color * Constructs a new Color object to store the color you provide * * Parameters *   String hex - Hex representation of the color, e.g. #FF0000 for pure red * * Returns  *   A new Color object with the specified color *  */function Color(hex) {	// if the hex parameter is omitted, black is used	this.hex = (Color.arguments.length > 0) ? hex : "000000";		// validate and assign color	rgb = hexToRGB(this.hex);	this.r = rgb[0];	this.g = rgb[1];	this.b = rgb[2];		// assign object methods	this.setHex = ColorSetHex;	this.getHex = ColorGetHex;	this.setRGB = ColorSetRGB;	this.toString = ColorToString;		return this;}/* * Color.setRGB * Sets the color using RGB values (0-255). * * Parameters *   byte r - red value *   byte g - green value *   byte b - blue value * */function ColorSetRGB(r,g, b) {	if (r >= 0 && r < 256	 && g >= 0 && g < 256	 &&	b >= 0 && b < 256 ) {		this.r = r;		this.g = g;		this.b = b;		this.hex = RGBToHex(r,g,b);	}}/* * Color.getHex * Returns the current color in hex format. * * Returns  *   String - the hex color, with a leading #, e.g. #FF0000 *  */function ColorGetHex() {	return "#" + this.hex;}/* * Color.setHex * Sets the current color in hex format * * Parameters *   String hex - the new color, works with or without a leading # * */function ColorSetHex(hex) {	rgb = hexToRGB(hex);		// set color using the setRGB() method which does the errorchecking as well	this.setRGB(rgb[0], rgb[1], rgb[2]);}/* * Color.toString * Returns a string representation of the object * * Returns  *   a string representation of the color as both Hex and RGB. *  */function ColorToString() {	return "#" + this.hex + " = (" + this.r + ", " + this.g + ", " + this.b + ")";}// ---------------------------------------------------------------------------/* * ColorBlend * Blends between two colors *//* * ColorBlend * Constructs a new ColorBlend object * * Parameters *   Color colorFrom - color to blend from *   Color colorTo - color to blend to * * Returns  *   A ColorBlend object with the two colors *  */function ColorBlend(colorFrom, colorTo) {	// assign object variables	this.from = colorFrom;	this.to = colorTo;		// assign object methods	this.getColor = ColorBlendGetColor;	this.toString = ColorBlendToString;	return this;}/* * ColorBlend.getColor * Calculates the color mixed by colorForm and colorTo. *  * Parameters *   double alpha - The blend factor (a real value between 0 and 1) * */function ColorBlendGetColor(alpha) {	a = alpha;	b = 1 - alpha;	c = new Color();			c.setRGB(Math.round(this.from.r * a + this.to.r * b),		Math.round(this.from.g * a + this.to.g * b),		Math.round(this.from.b * a + this.to.b * b));		return c;}/* * Color.toString * Returns a string representation of the object * * Returns  *   a string representation of the ColorBlend object,  *   e.g. ColorBlend(#FF0000, #000000) (blending from *   pure red to black). *    */function ColorBlendToString() {	return "ColorBlend(" + this.from + ", " + this.to + ")";}// ---------------------------------------------------------------------------/* * RGBToHex * Rectangle with color and size depending on depth (z value) * * Input Parameters *   byte r - red value *   byte g - green value *   byte b - blue value * * Returns  *   A hex representation of the given RGB color *  */function RGBToHex(r, g, b) {	return "" + HEXVALUES.charAt(Math.floor(r / 16)) + HEXVALUES.charAt(r % 16) +		HEXVALUES.charAt(Math.floor(g / 16)) + HEXVALUES.charAt(g % 16) +		HEXVALUES.charAt(Math.floor(b / 16)) + HEXVALUES.charAt(b % 16);}/* * hexToRGB * returns a RGB representation of the hex value in a 3-element array (r,g,b) * * Input Parameters *   String hex - the new color, works with or without a leading # * * Returns  *   A new preconfigured Material. */function hexToRGB(hex) {	hex += "";	// turn hex into uppercase and cut out the interesting part	hex = hex.toUpperCase().substr( (hex.charAt(0) == "#") ? 1 : 0, 6);		var rgb = new Array(0,0,0);	// convert the values	for (j = 0; j < 3; j++) {		rgb[j] = HEXVALUES.indexOf( hex.charAt(j*2) ) * 16 + HEXVALUES.indexOf( hex.charAt(j*2+1) );	}	return rgb;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -