快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

Flash制作带缓冲的滚动条

效果如下:

« Full Screen »

点击这里下载源文件

  普通的滚动条在内容移动的时候看上去很生硬,怎么让它看上去舒适一点呢?加上缓冲!这样看上去会异常流畅舒适。 

  总共只有两个元件和一个动态文本框(为了能使用遮罩把字体都嵌入了):
  1,滑块,实例名move_bar;
  2,一个遮罩元件,用来控制显示内容区域的大小,实例名mask;
  3,动态文本实例名为txt。
  下面是代码,写在桢上就行了。

//首先定义滑块的移动范围 
barUp = 67; 
barDown = 204; 
barPos = 446;  
//然后是缓冲的程度,速度值越大缓冲越明显 
speed = 6; 
//然后这个是计算比例,也就是滑槽和内容的可移动长度之比 
prop = (txt._height-mask._height)/(barDown-barUp); 
//记录下内容的最初位置 
txtOrigin = txt._y; 
//在滑块上按下的时候开始拖动,down用来判定是否处在拖动中 
move_bar.onPress = function() { 
 move_bar.startDrag(0, barPos, barUp, barPos, barDown); 
 down = 1; 
}; 
//鼠标松开的时候停止拖动,down变为0 
move_bar.onMouseUp = function() { 
 move_bar.stopDrag(); 
 down = 0; 
}; 
//这个是要害,enterFrame加上if(down),也就是在拖动的时候不停地执行if里面的程序 
this.onEnterFrame = function() { 
 if (down) { 
  //将此时滑块的y值减去滑块上限,计算出滑块向下移动的距离,乘以之前算出的比例,就得到了文本内容应该向上移动的距离 
  txtMove = (move_bar._y-barUp)*prop; 
//原来的位置减去距离,得到文本内容现在应该在的位置,也就是目标位置 
  txt.m_y = txtOrigin-txtMove; 
 } 
//文本内容y值的每一次变化量=(目标位置-当前位置)除以缓冲速度。注重这一句不能放在if循环里面,否则鼠标一松开缓冲就停止了 
 txt._y += (txt.m_y-txt._y)/speed; 
}; 
  OK, 测试一下,别忘记把桢数设高一点(我用的是48),这样看上去效果流畅。代码考虑了易用性,使用在其他地方的时候,只需要改一下滑块的范围,设好各个元件的实例名就可以了。
返回类别: Flash教程
上一教程: AS的基本代码解释
下一教程: 鼠绘技术内幕完全接触-概述篇

您可以阅读与"Flash制作带缓冲的滚动条"相关的教程:
· FLASHMX2004制作缓冲滚动条效果
· Flash制作文本框滚动缓冲效果
· FLASH MX 2004制作缓冲断层效果
· Flash MX 2004实例制作视频教程:鼠标跟随的缓冲效果
· Flash制作滚动广告图片效果
    微笑服务 优质保证 索取样品