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

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

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

效果如下:

« Full Screen »

今天写了这个效果的代码
用在主页的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

返回类别: Flash教程
上一教程: FlashMX 视频教程(45)-变形动画?会跳动的心
下一教程: Flash Mx使用技巧十二则

您可以阅读与"Flash制作文本框滚动缓冲效果"相关的教程:
· Flash MX 2004实例制作视频教程:鼠标跟随的缓冲效果
· FLASHMX2004制作缓冲滚动条效果
· 自动滚动的文本框的制作
· Flash MX 2004滚动文本框的两种做法
· Flash MX 出色文本篇(滚动文本框和动态文本)
    微笑服务 优质保证 索取样品