FLASH缓冲滚动升级版本

本教程介绍了一种独特的Flash平滑滚动实现方法,通过代码控制滚动条与被滚动内容之间的同步,实现流畅的滚动效果。文章详细解释了锁机制、缓冲移动算法及鼠标交互过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
这个教程和 以前经典出现的平滑滚动原理 完全不同 绝非抄袭 功能也有区别
flash演示+教程:
[url=http://www.blueidea.com/articleimg/2004/06/1950/show.html]
[color="#444444"]http://www.blueidea.com/articleimg/2004/06/1950/show.html
[/color]
[/url]
FLA源代码下载:
[url=http://www.blueidea.com/articleimg/2004/06/1950/feng4ever_scroll.fla]
[color="#444444"]http://www.blueidea.com/articleimg/2004/06/1950/feng4ever_scroll.fla[/color]
[/url]
简单介绍 :
[img]/Files/BeyondPic/2006-9/18/feng4ever_scroll2.jpg[/img]
[img]/Files/BeyondPic/2006-9/18/feng4ever_scroll3.jpg[/img]
详细介绍 :
第一帧action
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的时候锁就永远不会关闭,整个图片将一直随着鼠标缓缓飘逸于你的显示器上)
第二帧
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-[滚动条长度的一半])/
[滚动条缓冲常数,这里不要设置太大 以免 鼠标下来了 滚动条还在上面]
}
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*300/270)/300
(show_scroll._y*300/270)/300 是 滚动条的 _y 占滚动范围的比例
(
[color="#ff0000"]为什么 要 有 *300/270)/300 为什么不直接 /270 ??? 问得很好,这是因为我写错了[/color]
)
然后 用 show_image._height-300 乘 (show_scroll._y/270) 就得到 show_image 占总滚动比例于 滚动条占滚动总范围的 比例一样的 _y的值 前面加"-"号 是要达到 滚动条向下 被滚动mc向上的效果
然后说 当你点击 滚动条 可移动范围空白区域 的时候的情况
这个时候 锁打开 得到 鼠标当前位置
滚动条马上缓冲移动到这个位置
然后 相当于拖动滚动条移动一样 向下执行步骤
[img]/Files/BeyondPic/2006-9/18/feng4ever_scroll1.jpg[/img]
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/232.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值