解决FlashHex色彩Bug的方法

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

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;

}

代码拷贝框

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;

}

代码拷贝框

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 全部选择 然后拷贝]

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航