Color.js 937 字节
Newer Older
M
Mr.doob 已提交
1 2 3 4
/**
 * @author mr.doob / http://mrdoob.com/
 */

5
THREE.Color = function ( hex ) {
M
Mr.doob 已提交
6 7

	var _r, _g, _b, _a, _hex;
M
Mr.doob 已提交
8

9
	this.__styleString = "rgba(0, 0, 0, 1)";
M
Mr.doob 已提交
10

11
	this.setHex = function ( hex ) {
M
Mr.doob 已提交
12

M
Mr.doob 已提交
13
		_hex = hex;
M
Mr.doob 已提交
14 15
		this.updateRGBA();
		this.updateStyleString();
M
Mr.doob 已提交
16

M
Mr.doob 已提交
17
	};
M
Mr.doob 已提交
18

19
	this.setRGBA = function ( r, g, b, a ) {
M
Mr.doob 已提交
20

M
Mr.doob 已提交
21 22 23 24
		_r = r;
		_g = g;
		_b = b;
		_a = a;
M
Mr.doob 已提交
25

M
Mr.doob 已提交
26 27
		this.updateHex();
		this.updateStyleString();
M
Mr.doob 已提交
28

M
Mr.doob 已提交
29
	};
M
Mr.doob 已提交
30

M
Mr.doob 已提交
31
	this.updateHex = function () {
M
Mr.doob 已提交
32

33
		_hex = Math.floor( _a * 255 ) << 24 | _r << 16 | _g << 8 | _b;
M
Mr.doob 已提交
34

M
Mr.doob 已提交
35
	};
M
Mr.doob 已提交
36

M
Mr.doob 已提交
37
	this.updateRGBA = function () {
M
Mr.doob 已提交
38

M
Mr.doob 已提交
39 40 41
		_r = _hex >> 16 & 0xff;
		_g = _hex >> 8 & 0xff;
		_b = _hex & 0xff;
42
		_a = (_hex >> 24 & 0xff) / 255;
M
Mr.doob 已提交
43

M
Mr.doob 已提交
44
	};
M
Mr.doob 已提交
45

M
Mr.doob 已提交
46
	this.updateStyleString = function () {
M
Mr.doob 已提交
47

48
		this.__styleString = 'rgba(' + _r + ',' + _g + ',' + _b + ',' + _a + ')';
M
Mr.doob 已提交
49

M
Mr.doob 已提交
50
	};
M
Mr.doob 已提交
51

M
Mr.doob 已提交
52
	this.toString = function () {
M
Mr.doob 已提交
53

54
		return 'THREE.Color ( r: ' + _r + ', g: ' + _g + ', b: ' + _b + ', a: ' + _a + ', hex: ' + _hex + ' )';
M
Mr.doob 已提交
55

M
Mr.doob 已提交
56
	};
M
Mr.doob 已提交
57

58
	this.setHex( hex );
M
Mr.doob 已提交
59

M
Mr.doob 已提交
60
};