当你的电脑不能计算正确的总和时,你就知道这是错误的!
我完全不知道为什么会发生这样的事情:
_root.attachMovie("clippy","aClip",_root.getNextHighestDepth());
trace("alpha 1 = "+aClip._alpha);
aClip._alpha = 0;
trace("alpha 2 = "+aClip._alpha);
aClip._alpha += 20;
trace("alpha 3 = "+aClip._alpha);
aClip._alpha = 20;
trace("alpha 4 = "+aClip._alpha);输出为:
alpha 1 = 100
alpha 2 = 0
alpha 3 = 19.921875
alpha 4 = 19.92187519.921875应该是20!:(
我要哭了。我的处理器有癌症吗?阿尔茨海默病?谁说计算机不会出错?
附注:我也使用了aClip._alpha=Math.round(aClip._alpha),但是跟踪是一样的!
发布于 2010-07-31 01:00:29
_alpha值存储为一个字节(我应该说是8位-从0到255的整数值)
设置_alpha值时,使用百分比。当您检索它时,它会生成百分比的精确十进制表示。
aClip._alpha = 20;256的20%是51.2,因为它被存储为一个整数,所以它将被51。
然后,
51 / 256 * 100是Flash将其返回给你的方式,也就是19.921875。
发布于 2010-07-31 00:59:41
四舍五入似乎
发布于 2010-07-31 00:39:48
如果我没记错的话,flash在内部存储alpha的时候会有一些奇怪的疯狂的值,比如0..240 (我不认为是255)。会不会是20等于20%,经过四舍五入后,19.92是转换回百分比后的最接近的值?
https://stackoverflow.com/questions/3373532
复制相似问题