2011-03-31 49 views
1

容易,因为它与32位值的RGBA一起工作,我以前使用的大多数库都实现了实用程序以避免所有的位移,比如RGBA()宏或类似。我不能在livedocs上看到这样的东西,也许它在那里,我错过了它?AS3没有颜色/ rgba支持类吗?

使用Flash 9/10,它需要是一个核心的AS3类。

回答

2

AS3没有这种东西。那里可能有课。

最简单的方法:

var d:BitmapData = new BitmapData(10,10); 
var pixel:int = d.getPixel(5,5); 
var red:int = pixel >> 16; 
var green:int = pixel >> 8 & 0xff; 
var blue:int = pixel & 0xff; 

在这里,我创建了一个BitmapData。然后得到点(5,5)的颜色。这里的像素是RGB。然后做一些转换来获得组件。

对于ARGB值(编者):

var argb:int = 0x11223344; 
var alpha:int = argb >> 24; 
var red:int = argb >> 16 & 0xff; 
var green:int = argb >> 8 & 0xff; 
var blue:int = argb & 0xff; 
+1

@MorrisLiang。请注意,闪存将颜色信息存储为ARGB,而不是RGBA。 – 2011-04-01 02:32:22

+0

对不起,我一年没有编码AS3。 – MorrisLiang 2011-04-01 05:14:24

+0

我用'>>'发现问题,我不得不使用'>>>',这是我从来不知道的! – 2011-04-03 11:36:01

0

不,没有特定的内置方法来避免位移。如果你不想使用库,你可以复制和粘贴一些适当的功能到你的代码 - 谷歌弹出this了,它看起来很合适。