在ActionScript 3(和IIRC 2)中,显示对象上的x和y属性总是以0.05的倍数存储。AS3 x和y属性精度
所以像obj.x = 66.6666
相同obj.x = 66.65
大多数时候,这并不重要。但有时候我可能会遇到移动速度非常慢的物体,例如每秒1个像素。 1/60(fps)=每帧0.017个像素。 obj.x += 0.017
将从来没有实际上改变x值,因为它四舍五入到最接近的0.05。
这迫使我重写DisplayObject的x属性,以便它们不被舍入。
我可以理解舍入坐标到最接近的整数值进行渲染。使用更高级的渲染器,我甚至可以理解四舍五入可以用二进制表示的分数(例如0.25)。但0.05不能完全用二进制表示。
那么为什么Flash的创建者决定将其舍入到最接近的.05?对我来说,这似乎是一个任意的数字。
好的,但我的问题更多地是关于什么广告使用.05倍数的优势在于。 – Ponkadoodle 2010-10-30 03:18:59
根据SWF文件格式规范,“Twips是尺寸和精度之间的良好折中,它们为缩放和精确放置对象提供了亚像素精度,同时每个坐标消耗很少的位。” – 2010-10-30 06:29:49
这个答案不是你要找的吗? – 2010-11-21 04:01:42