FLASHMX2004制作缓冲滚动条效果

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

建立对象

填写AS

AS详解

第1帧:

show_scroll.onPress=function()

//滚动条被按下 锁被打开

show_scroll.onRelease=function()

//滚动条被放松 锁被关闭

show_scrollbg.onPress=function()

//滚动条空白区域被点击 锁被打开

show_scrollbg.onMouseUp=function()

//鼠标提升 锁被关闭

//这里是有原因的 当你鼠标按下 放开的时候不是在滚动条背景 scrollbg的时候

// 锁就永远不会关闭,整个图片将一直随着鼠标缓缓飘逸于你的显示器上

第2帧:

if (scroll_lock=="no") {

show_scroll._y+=(_ymouse-show_scroll._y-15)/2

}

show_image._y+=(-(show_image._height-300)*(show_scroll._y*300/270)/300-show_image._y)/20

详细解释:

show_scroll._y+=(_ymouse-show_scroll._y-15)/2:其中的“15”代表滚动条长度的一半,“2”代表滚动条缓冲常数,注意:这个常数不要设置太大,以免鼠标下来了,滚动条还在上面。

show_image._y+=(-(show_image._height-300)*(show_scroll._y/270)-show_image._y)/20:show_image._y+=(-(show_image._height-[滚动显示区域的高度])*(show_scroll._y/[滚动显示区域的高度-滚动条高度])-show_image._y)/[被滚动影片缓冲常数,这里不要设置太大 以免 鼠标下来了 滚动条还在上面]

下面先讲按住滚动条滚动。当没上锁的时候,也就是滚动条scroll或者背景scrollbg被按下的时候,show_scroll._y也就是滚动条的垂直位置,缓冲移动到鼠标当前位置的上15个象素,然后被滚动影片以缓冲移动到一个指定位置。

主要的地方来了: show_image._height-300 意思就是 _ymouse-show_scroll._y-[滚动条长度的一半],show_image被移动的最大范围。然后下面就是要让 show_image滚动到的位置所占总滚动位置的比例,和滚动条移动到的y占总移动范围的比例一样。所以有了 show_image+=([极限位置]-show_image._y)/20这个是缓冲的算法,向极限每次循环以当前距离的1/20靠近。

[极限位置] =-(show_image._height-300)*(show_scroll._y/270),(show_scroll._y/270)是滚动条的 _y 占滚动范围的比例

然后用 show_image._height-300 乘 (show_scroll._y/270) 就得到 show_image,占总滚动比例与滚动条占滚动总范围的比例一样。_y的值前面加"-"号是要达到滚动条向下,被滚动mc向上的效果。然后当你点击滚动条,可移动范围空白区域的时候,锁打开,得到鼠标当前位置,滚动条马上缓冲移动到这个位置,然后,相当于拖动滚动条移动一样,向下执行步骤。

图例:

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航