a color class for actionscript

1 //bill.lee created in 2011.2.10
2
3 //version 1.0
4
5 package
6 {
7 public class Color
8 {
9 // contructor, use a number
10 // actionscript的构造函数不能重载
11 public function Color(color:String)
12 {
13 this.stringValue = color;
14 }
15
16 //--------------set value in different format-------------
17 // set value by integer (real value)
18 public function set realValue(value:Number):void
19 {
20 this.r = value>>16;
21 this.g = (value>>8) & 0xFF;
22 this.b = value & 0xFF;
23 }
24
25 public function setRGB(r:Number, g:Number, b:Number):void
26 {
27 this.r = r;
28 this.g = g;
29 this.b = b;
30 }
31
32 // set string value like "#FF0000"
33 public function set stringValue(value:String):void
34 {
35 // check
36 var reg1:RegExp = /#[0-9a-fA-F]{6}/; // #FF00000
37 var reg2:RegExp = /0x[0-9a-fA-F]{6}/;
38 var s:String;
39 if(reg1.test(value))
40 {
41 s = "0x"+value.substr(1, 6);
42 }
43 else if(reg2.test(value))
44 {
45 s = value;
46 }
47 else if(value.length==0)// 如果是"",则默认为黑色
48 {
49 s = "0x000000";
50 }
51 else
52 {
53 throw new Error("Color wrong");
54 }
55 //var s:String = "0x"+value.substring(1, 7);
56 this.realValue = Number(s);
57 }
58
59 public function set R(value:Number):void
60 {
61 this.r = value;
62 }
63
64 public function set G(value:Number):void
65 {
66 this.g = value;
67 }
68
69 public function set B(value:Number):void
70 {
71 this.b = value;
72 }
73
74 //-------------------get value in different format-------------------------
75 // to string like "#FF0000"
76 public function get stringValue():String
77 {
78 return "#" + this.realValue.toString(16);
79 }
80
81
82 // get the real color value
83 public function get realValue():Number
84 {
85 var c:Number = r<<16 | g<<8 | b;// bit operation
86 return c;
87 }
88
89
90 public function get R():Number
91 {
92 return this.r;
93 }
94
95 public function get G():Number
96 {
97 return this.g;
98 }
99
100 public function get B():Number
101 {
102 return this.b;
103 }
104
105 private var r:Number;
106 private var g:Number;
107 private var b:Number;
108
109 }
110 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值