手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网页制作>Flash>列表

Flash制作文本框滚动缓冲效果

来源:互联网 作者:west263.com 时间:2008-04-02
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

  效果如下:

  

  

  


  今天写了这个效果的代码

  用在主页的diary里

  觉得以前用scroll对象来控制文本框,滚动起来比较生硬

  其中drag为滚动条名字

  block为文本框

  b_up,b_down为上下滚动按钮

  主要方法是用block始终跟随drag的位置变化而滚动

  而b_up,b_down更有鼠标滚轮都是直接控制drag的位置变化的,从而间接控制文本框的滚动

  
            // JTL

   // http://www.hartech.cn

   // e-mail: jtl.zheng@gmail.com

  //初始化函数

  function Var() {

  //滚动条和上下按钮的间隙

  space = 31;

  //上下按钮的滚动速度

  updown_speed = 5;

  //文本框的滚动范围

  block_range = block._height-mark._height;

  //文本框的初始位置

  block_origin = block._y;

  //滚动条的滚动范围

  drag_range = b_down._y-b_up._y-2*space;

  //滚动条的初始位置

  drag_origin = b_up._y space;

  //初始化滚动条位置

  drag._y = drag_origin;

  //滚动缓冲系数

  k = .1;

  }

  Var();

  //block为文本框,始终跟随滚动条(drag)变化

  block.onEnterFrame = function() {

  //pos为文本框目标位置

  pos = block_origin-(drag._y-drag_origin)*block_range/drag_range;

  //缓冲效果

  this._y = (pos-this._y)*k;

  };

  drag.onPress = function() {

  this.startDrag(false, this._x, drag_origin, this._x, (drag_origin drag_range));

  };

  drag.onRelease = function() {

  this.stopDrag();

  };

  //up_down按钮

  b_up.onPress = function() {

  onEnterFrame = function () {

  if (drag._y<=drag_origin) {

  drag._y = drag_origin;

  } else {

  drag._y -= updown_speed;

  }

  };

  };

  b_up.onRelease = function() {

  onEnterFrame = null;

  };

  b_down.onPress = function() {

  onEnterFrame = function () {

  if (drag._y>=drag_origin drag_range) {

  drag._y = drag_origin drag_range;

  } else {

  drag._y = updown_speed;

  }

  };

  };

  b_down.onRelease = function() {

  onEnterFrame = null;

  };

  //侦听mouse滚轮

  mouseListener = new Object();

  mouseListener.onMouseWheel = function(delta) {

  if (delta>0) {

  drag._y -= updown_speed*2;

  }

  if (delta<0) {

  drag._y = updown_speed*2;

  }

  if (drag._y<=drag_origin) {

  drag._y = drag_origin;

  }

  if (drag._y>=drag_origin drag_range) {

  drag._y = drag_origin drag_range;

  }

  };

  Mouse.addListener(mouseListener);

  


  建立文本框代码
     loadVariables("text/diary.txt", this);

  myTextFormat = new TextFormat();

  myTextFormat.font = "宋体";

  myTextFormat.size = 12;

  myTextFormat.leading = 3;

  createTextField("test_txt", 10, 0, 0, 210, 10);

  test_txt.multiline = true;

  test_txt.wordWrap = true;

  test_txt.autoSize = true;

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!