以横向滚动条为例。
1.滑块宽度是计算得来。
计算公式:
页数(A) = (最大值 - 最小值)/ 每页跨度值
滑块宽度 = 滚动条宽度 / A
2. 通过外部传入“当前值”,计算滑块位置。
计算公式(通常情况):
当前值占表示值的比率(B) = (当前值 - 最小值)/ (最大值 - 最小值)
滑块x坐标 = 滚动条宽度 * B
3. 拖拽滑块,根据滑块x坐标,计算其代表的“当前值”
计算公式(通常情况):
x坐标位置占滚动条宽度的比率(C) = x / 滚动条宽度
当前值 = C * (最大值 - 最小值)+ 最小值
===================================
上面2和3是互逆的两个公式。
===================================
一旦涉及到乘除法,就会遇到小数精度损失问题。
因此从计算结果上看,
通过公式2得到的结果,再通过公式3是无法逆向还原到公式2的计算之初状态的。
理论结果和实际计算结果是不相同的,有误差的。
这样的误差会影响到滚动条。
*********************************************************************************
另者,Flashplayer本身机制也产生误差。那就是:Twips(缇)
参见:
http://bbs.9ria.com/thread-177356-1-1.html