| Flash在转换16进制色彩时有一个Bug,当某一颜色值为00时,Flash自动取00的值为0,它计算实值,认为是空。这样类似于#00FFCC得色值会被转换为#FFCC。Quester为此写了一个函数进行补位计算,希望对遇到此问题的朋友有些帮助。
 function RGB2HEX (R, G, B) {// 补位操作
 RR = R.toString(16).toUpperCase();
 if (length(RR)<2) {
 RR = "0" add RR;
 }
 GG = G.toString(16).toUpperCase();
 if (length(GG)<2) {
 GG = "0" add GG;
 }
 BB = B.toString(16).toUpperCase();
 if (length(BB)<2) {
 BB = "0" add BB;
 }
 // 用于网页 的 Hex 值
 Hex = "#" add RR add GG add BB;
 return Hex;
 }
 
 代码拷贝框
 [Ctrl+A 全部选择 然后拷贝]
 下面是秋水精减后的代码: function RGB2HEX (R, G, B) {// 补位操作
 RR = (256 + R).toString(16).toUpperCase().substr(1);
 GG = (256 + G).toString(16).toUpperCase().substr(1);
 BB = (256 + B).toString(16).toUpperCase().substr(1);
 // 用于网页 的 Hex 值
 Hex = "#" add RR add GG add BB;
 return Hex;
 }
 
 代码拷贝框
 [Ctrl+A 全部选择 然后拷贝]
 出处:蓝色理想
责任编辑:蓝色
 ◎进入论坛Flash专栏版块参加讨论
	      |