首页 > 代码库 > ActionScript3游戏中的图像编程(连载五)
ActionScript3游戏中的图像编程(连载五)
1.1.2 Flash中的ARGB模式与不透明度的关系
ARGB是Flash,svg等矢量处理软件特有的一种色彩模式,事实上我觉得它有点扯淡,A(alpha)不应该作为一个通道存在于色彩模式中,它更适合作为一个独立的属性从色彩模式中抽离出来并应用到其他的色彩模式(如HSB,CMYK,LAB等)中。Alpha不之所以Flash这么用,个人认为有3个原因:
1 Flash并非专业的图形软件,将它与RGB一视同仁,可以帮助AS3程序员更方便地使用颜色,实践证明,易用性确实比单独抽离出来要高。
2 AS3只有RGB这一种内置的色彩模式,加上去可让开发者感觉到颜色的功能不会过于单一,如果是PhotoShop那样的软件就免了,搞完ARGB,还得弄AHSB,ACMYK,ALAB神马的,模式的数量一下子就翻倍了,切换模式就会显得更不方便,同时结构也不合理。在PhotoShop里,我们可以粗略地将蒙板理解为alpha通道。
3 颜色在AS3以uint的形式存在,它可以包含32位数值,RGB各占了8位之后,刚刚好剩下8位给A值使用。
虽然在Flash IDE里,调色板显示的A范围为0%~100%,但是,在ARGB模式中,A的值也被标准化为0~255。假设上面所说的颜色(0xC485EE)带上了50%的不透明度,那么,它的A=(255+1) * 0.5 – 1 = 127 = 0x7F,所以ARGB数值就等于0x7FC485EE。100%不透明度则为0xFFC485EE,0%不透明度为0x00C485EE。
32位的ARGB色彩很少直接用在显示对象上,它们依然用一个独立的alpha属性去控制透明度,ARGB更多的,是在BitmapData上做事,这里暂不展开讨论。
此外,由于通道的易用性和可控性较强,因此Photoshop也没有完全放弃掉alpha通道,您仍然可以在“通道面板”的三角菜单中找到“新建通道”的菜单项。