快速业务通道

RGB 色彩值进制转换器

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-12


做这个东东的目的是为了解释有人提出的,RGB 色彩值10进制与16进制之间的转换问题。

点击浏览该文件

点击浏览该文件
http://www.Flash8.net/bbs/UploadFile/2005-2/200522422333636.swf
有的朋友想看源码,俺就贴出来,以供参考: // 十六进制输入框初始化
hexadecimalRGB_input.text = "0x";
hexadecimalRGB_input.restrict = "0-9a-fA-Fx";
hexadecimalRGB_input.maxChars = 8;
// 十进制输入框初始化
decimalR_input.text = decimalG_input.text = decimalB_input.text = "";
decimalR_input.restrict = decimalG_input.restrict = decimalB_input.restrict = "0-9";
decimalR_input.maxChars = decimalG_input.maxChars = decimalB_input.maxChars = 3;
//
warning_dynamic.text = "使用说明:1)在输入框内输入相应的16进制或10进制RGB值;2)选择转换关系;3)点击<转换>按钮";
//
// 添加 Enter 键侦听
var enterHandler:Object = new Object();
enterHandler.onKeyDown = function(e:Object)
{
if (Key.getCode() == 13)
{
rgbTransform();
}
};
Key.addListener(enterHandler);
//
// 设定按钮事件及其处理函数
switch_btn.onRelease = rgbTransform;
function rgbTransform()
{
// 清空错误提示
warning_dynamic.text = "";
// 根据转换选择判断
switch (rgbOptions.selection.data)
{
case 16210 :
// 16进制到10进制
//
// 合法性初步验证
if (hexadecimalRGB_input.length == 8)
{
// 进一步验证并转换
var resultValue:Array = rgbToDec(hexadecimalRGB_input.text);
// 判断转换结果
if (resultValue.length == 3)
{
// 更新十进制输入框
decimalR_input.text = resultValue[0];
decimalG_input.text = resultValue[1];
decimalB_input.text = resultValue[2];
// 刷新色彩样本
var sampleColor:Color = new Color(sample_mc);
sampleColor.setRGB(Number(hexadecimalRGB_input.text));
break;
}
}
// 错误提示
warning_dynamic.text = "无效的十六进制色彩值!";
warning_dynamic.text += "\n有效输入:0x000000 -- 0xFFFFFF";
break;
case 10216 :
// 10进制到16进制
//
// 字符串到数值
var numR:Number = parseInt(decimalR_input.text);
var numG:Number = parseInt(decimalG_input.text);
var numB:Number = parseInt(decimalB_input.text);
// 合法性验证
if (numR < 256 && numG < 256 && numB < 256)
{
// 更新十六进制输入框
hexadecimalRGB_input.text = rgbToHex(numR, numG, numB);
// 刷新色彩样本
var sampleColor:Color = new Color(sample_mc);
//sampleColor.setRGB(parseInt(hexadecimalRGB_input.text, 16));
sampleColor.setRGB(Number(hexadecimalRGB_input.text));
}
else
{
warning_dynamic.text = "无效的十进制色彩值!";
warning_dynamic.text += "\n有效输入:0 -- 255";
}
break;
}
}
//
// RGB 十进制到十六进制
function rgbToHex(r:Number, g:Number, b:Number):String
{
var r_string:String = r.toString(16);
var g_string:String = g.toString(16);
var b_string:String = b.toString(16);
r_string = (r_string.length < 2) ? ("0" + r_string) : r_string;
g_string = (g_string.length < 2) ? ("0" + g_string) : g_string;
b_string = (b_string.length < 2) ? ("0" + b_string) : b_string;
return ("0x" + (r_string + g_string + b_string).toUpperCase());
}
//
// RGB 十六进制到十进制
function rgbToDec(rgbHex:String):Array
{
var rgb_array:Array = new Array();
var rDec:N

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号