?
這個(gè)教程和 以前經(jīng)典出現(xiàn)的平滑滾動(dòng)原理 完全不同 絕非抄襲 功能也有區(qū)別
flash演示+教程:
[url=http://www.blueidea.com/articleimg/2004/06/1950/show.html]
http://www.blueidea.com/articleimg/2004/06/1950/show.html
[/url]
FLA源代碼下載:
[url=http://www.blueidea.com/articleimg/2004/06/1950/feng4ever_scroll.fla]
http://www.blueidea.com/articleimg/2004/06/1950/feng4ever_scroll.fla
[/url]
簡(jiǎn)單介紹 :


詳細(xì)介紹 :
第一幀action
show_scroll.onPress=function(){scroll_lock= "no"} //滾動(dòng)條被按下鎖被打開(kāi)
show_scroll.onRelease=function(){scroll_lock= "yes"} //滾動(dòng)條被放松鎖被關(guān)閉
show_scrollbg.onPress=function(){scroll_lock= "no"} //滾動(dòng)條空白區(qū)域被點(diǎn)擊鎖被打開(kāi)
show_scrollbg.onMouseUp=function(){scroll_lock="yes"} //鼠標(biāo)提升 鎖被關(guān)閉 (這里是有原因的 當(dāng)你鼠標(biāo)按下 放開(kāi)的時(shí)候不是在滾動(dòng)條背景 scrollbg的時(shí)候鎖就永遠(yuǎn)不會(huì)關(guān)閉,整個(gè)圖片將一直隨著鼠標(biāo)緩緩飄逸于你的顯示器上)
第二幀
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
更一般性的
if (scroll_lock=="no") {
?? show_scroll._y+=(_ymouse-show_scroll._y-[滾動(dòng)條長(zhǎng)度的一半])/
[滾動(dòng)條緩沖常數(shù),這里不要設(shè)置太大 以免 鼠標(biāo)下來(lái)了 滾動(dòng)條還在上面]
}
show_image._y+=(-(show_image._height-[滾動(dòng)顯示區(qū)域的高度])*
(show_scroll._y*/[滾動(dòng)顯示區(qū)域的高度-滾動(dòng)條高度])-show_image._y)/
[被滾動(dòng)影片緩沖常數(shù),這里不要設(shè)置太大 以免 鼠標(biāo)下來(lái)了 滾動(dòng)條還在上面]
下面先講 按住滾動(dòng)條滾動(dòng)
當(dāng)沒(méi)上鎖的時(shí)候 也就是 滾動(dòng)條scroll或者背景scrollbg 被按下的時(shí)候
show_scroll._y 也就是滾動(dòng)條的垂直位置緩沖移動(dòng)到鼠標(biāo)當(dāng)前位置的 上15個(gè)象素
然后被滾動(dòng)影片 以緩沖 移動(dòng)到 一個(gè)指定位置
主要的地方來(lái)了: 等我吃個(gè)茶葉蛋 打個(gè)屁 繼續(xù)
show_image._height-300 意思就是_ymouse-show_scroll._y-[滾動(dòng)條長(zhǎng)度的一半]
show_image 被移動(dòng)的最大范圍 然后下面就是要讓 show_image滾動(dòng)到的位置 所占 總滾動(dòng)位置的比例 和 滾動(dòng)條移動(dòng)到的 y占總移動(dòng)范圍的比例一樣
所以有了 show_image+=([極限位置]-show_image._y)/20 這個(gè)是緩沖的算法 向極限 每次循環(huán)以當(dāng)前距離的 1/20靠近
[極限位置] =-(show_image._height-300)*(show_scroll._y*300/270)/300
(show_scroll._y*300/270)/300 是 滾動(dòng)條的 _y 占滾動(dòng)范圍的比例
(
為什么 要 有 *300/270)/300 為什么不直接 /270 ??? 問(wèn)得很好,這是因?yàn)槲覍?xiě)錯(cuò)了
)
然后 用 show_image._height-300 乘 (show_scroll._y/270) 就得到 show_image 占總滾動(dòng)比例于 滾動(dòng)條占滾動(dòng)總范圍的 比例一樣的 _y的值 前面加"-"號(hào) 是要達(dá)到 滾動(dòng)條向下 被滾動(dòng)mc向上的效果
然后說(shuō) 當(dāng)你點(diǎn)擊 滾動(dòng)條 可移動(dòng)范圍空白區(qū)域 的時(shí)候的情況
這個(gè)時(shí)候 鎖打開(kāi) 得到 鼠標(biāo)當(dāng)前位置
滾動(dòng)條馬上緩沖移動(dòng)到這個(gè)位置
然后 相當(dāng)于拖動(dòng)滾動(dòng)條移動(dòng)一樣 向下執(zhí)行步驟

本文轉(zhuǎn)自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/232.html
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
