我试图找出如何将RGB转换为ARGB内联。如果我将结果放入uint中,它就可以工作,但如果我尝试直接使用该值,它会将其视为int,即使所有值都是uint。我是否还有额外的任务?
var test:uint = 0xCCCCCC | (0xFF << 24);
trace(test.toString(16));
//ffcccccc
var rgb:uint = 0xCCCCCC;
var alpha:uint = 0xFF;
trace((rgb | (alpha << 24)).toString(16))
//-333334
答案 0 :(得分:2)
你试过uint((alpha << 24)).toString(16));
吗?
答案 1 :(得分:0)
这无济于事。您只需将结果解释为uint,但AS执行转换为int。
试试这个
trace(2147483648 >> 1); // -1073741824
trace(uint(2147483648 >> 1)); // 3221225472
您只需要使用带符号的按位移位运算符,如下所示:
trace(2147483648 >>> 1); // 1073741824