以文本方式查看主题

-  ╋艺 镇╋  (http://zyzsky.com/bbs/index.asp)
--  ┣◇FLASH交流  (http://zyzsky.com/bbs/list.asp?boardid=5)
----  FLASHMX2004制作缓冲滚动条效果  (http://zyzsky.com/bbs/dispbbs.asp?boardid=5&id=1510)

--  作者:admin
--  发布时间:2008/5/7 13:15:37
--  FLASHMX2004制作缓冲滚动条效果

简介:

滚动条的制作有很多种方法,本教程通过一个缓冲公式制作出了带缓冲效果的滚动条,简单实用……

一、效果预览

FLASHMX2004制作缓冲滚动条效果

二、建立对象

FLASHMX2004制作缓冲滚动条效果

三、填写AS

FLASHMX2004制作缓冲滚动条效果

四、AS详解

第1帧:

show_scroll.onPress=function(){scroll_lock="no"}

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

show_scroll.onRelease=function(){scroll_lock="yes"}

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

show_scrollbg.onPress=function(){scroll_lock="no"}

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

show_scrollbg.onMouseUp=function(){scroll_lock="yes"}

//鼠标提升 锁被关闭

//这里是有原因的 当你鼠标按下 放开的时候不是在滚动条背景 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向上的效果。然后当你点击滚动条,可移动范围空白区域的时候,锁打开,得到鼠标当前位置,滚动条马上缓冲移动到这个位置,然后,相当于拖动滚动条移动一样,向下执行步骤。

图例:

FLASHMX2004制作缓冲滚动条效果