Я только что провел 30 минут с этим. Я переименовал объект entity, переименовал запись в файле конфигурации, но есть еще кое-что ... вы также должны изменить ссылку на csdl
, которую очень легко пропустить - если вы переименовываете, убедитесь, что вы получите все ....
var argb: int = (альфа << 24) | rgb;
var rgb: int = 0xFFFFFF & argb;
var alpha: int = (argb >> 24) & 0xFF;
A, R, G, B - распространенный формат, используемый видеокартами для обеспечения «смешивания текстур» и прозрачности текстуры. Большинство систем используют только 8 бит для R, G и B, так что еще 8 бит остаются свободными из 32-битного размера слова, который является обычным для ПК.
The mapping is:
For Bits:
33222222 22221111 11111100 00000000
10987654 32109876 54321098 76543210
AAAAAAAA RRRRRRRR GGGGGGGG BBBBBBBB
00000000 RRRRRRRR GGGGGGGG BBBBBBBB
Примерно так:
private function toARGB(rgb:uint, newAlpha:uint):uint{
var argb:uint = 0;
argb = (rgb);
argb += (newAlpha<<24);
return argb;
}
private function toRGB(argb:uint):uint{
var rgb:uint = 0;
argb = (argb & 0xFFFFFF);
return rgb;
}
Если альфа может быть представлена 8 битами, это возможно. Просто сопоставьте каждую область своего 32-битного значения ARGB с соответствующей переменной, например
0x0ABCDEF1
alpha - 0x0A
красный - 0xBC
зеленый - 0xDE
синий - 0xF1
Я не могу ничего добавить к превосходным ответам выше, но, проще говоря, альфа-значения являются последними две цифры в uint, например
//white
var white:uint = 0xFFFFFF;
//transparent white
var transparent:uint = 0xFFFFFFFF;
Масштаб как обычно, 00 = 1 FF = 0.
Надеюсь, это поможет