文本框滚动缓冲效果
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-11
今天写了这个效果的代码 用在主页的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; test_txt.html = true; test_txt.htmlText = text; test_txt.setTextFormat(myTextFormat); test_txt.type = "Static"; // 演示地址: // http://www.hartech.cn/blog/blogview.ASP?logID=45 关键词:文本 文本框 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 用编程方式实现3D效果下一篇: 用Flash做苹果按钮完全篇
关于文本框滚动缓冲效果的所有评论