用户名: 密码: 验证码: QQ--程序群:31736530 动画群:38836599
闪无忧
 
首 页 业界新闻 业界杂谈 Flash教程 Flash源码 Flash图书 Flash酷站 Flex & AIR 供求信息
   本栏目通告:   有意向写收费精品教程的朋友,请联系本站合作
当前位置 :首页>flash教程>Flash应用开发>列表

flash超酷滚动公式实现自定义滚动条

[来源:闪客无忧 | 作者:佚名 | 时间:2008-03-29 | 点击:  | 收藏本文  【 】]
 

在这段代吗中所有标红的部分是修改过的,我们在scrolling函数中加入了一个开关,可用来打开和关闭easing。

在updateContentPos()函数中我们把原有的contentMain._y改为contentMain.newY,通过它确定移动的新位置目标。下面的这段代码就是移动到新位置的缓动过程。

代码:
 

contentMain.onEnterFrame = function()
    {
        if (!easing || easing == undefined)
        {
            this._y = this.newY;
        }
        else
        {
            this._y += (this.newY-this._y)/easingSpeed;
        }
};
 

最后通过scrolling(true)传递true给easing来执行缓动,如果不执行缓动,那么newY仍是原值this._y。
这种标准的缓动在前面的第3章就已经有过介绍,现在看上去并不算复杂了,只要理解了原理,就增加了无限的创意空间了。
最后给你留下一点发挥的空间,你可以试试缓动动态载入文本,做一提示,在遮罩时需要应用setMask()方法。如果你实在做不出来,可以访问如下地址提出疑问。
ws-forum:http://www.webstudio.com.cn/forum.

附加内容:
上边的内容为本书原稿内容,下面是应群内网友的要求,特增加如下两个功能.自动滚动和中键滚动.

自动滚动

演示文件

如果你能完成上面的例子,并理解了滚动公式,那现面的问就变得很简单了.

操作方法:
1.    打开scrollbar_ease.fla文件,将其另存为auto_scrollbar_ease.fal
2.    打开后,选中actionscript层,按下F9,打开actionscript面板.我们将在此代码的基础上进行修改.
3.    将原来的代码修改为所下所示:
代码:
 

//copyright by webstudio.com.cn.author by egoldy.
function scrolling(easing, auto) {
    //滚动速度
    var moveSpeed = 1;
    var easingSpeed = 10;
    var scrollHeight = scrollbg._height;
    //可滚动的区域
    var scrollable = contentMain._height-maskedView._height;
    var top_scroll = contentMain._y;
    //滑块可拖动的区域
    var left = scrollbg._x;
    var top = scrollbg._y;
    var right = scrollbg._x;
    var bottom = scrollbg._y+scrollbg._height-dragger._height;
    //在开始前检测我们的滚动是否可滚动,如果内容不足滚动,隐藏dragger等,并返回。
    if (scrollable<0) {
        dragger._visible = false;
        btnup._alpha = 50;
        btndown._alpha = 50;
        scrollbg._alpha = 50;
        btnup.enabled = false;
        btndown.enabled = false;
        return;
    }
    //更新滚动内容的位置。公式的应用    
    function updateContentPos() {
        var percent_scrolled = (dragger._y-btnup._height)/(scrollHeight-dragger._height);
        contentMain.newY = Math.round(top_scroll-(scrollable*percent_scrolled));
        trace(contentMain.newY);
    }
    contentMain.onEnterFrame = function() {
        if (!easing || easing == undefined) {
            this._y = this.newY;
        } else {
            this._y += (this.newY-this._y)/easingSpeed;
        }
    };
    //拖动滑块
    dragger.onPress = function() {
        startDrag(this, false, left, top, right, bottom);
        this.onMouseMove = function() {
            updateContentPos();
        };
    };
    dragger.onRelease = dragger.onReleaseOutside=function () {
        stopDrag();
        delete this.onEnterFrame;
    };
    btnup.onPress = function() {
        this.onEnterFrame = function() {
            //技巧
            dragger._y = Math.max(top, dragger._y-moveSpeed);
            updateContentPos();
        };
    };
    btnup.onRelease = function() {
        delete this.onEnterFrame;
    };
    btndown.onPress = function() {
        this.onEnterFrame = function() {
            dragger._y = Math.min(bottom, dragger._y+moveSpeed);
            updateContentPos();
        };
    };
    btndown.onRelease = function() {
        delete this.onEnterFrame;
    };
    updateContentPos();
    //++++++++++++++++++++++++++++++++++++++++++
    //自动滚动代码段
    if (auto == true) {
        onEnterFrame = function () {
            if (dragger._y<bottom) {
                dragger._y = dragger._y+0.2;
                updateContentPos();
            } else {
                dragger._y = top;
            }
        };
    }
    
}
//调用函数
scrolling(true, true);
上一页 1 2 3 4 56 7 下一页
文章如果有错误或者缺少文件,请发邮件提交给我们
上一篇:自己-创建 Flash中.JSFL 文件,添各种命令,还可以扩展
下一篇:flash动态文本滚动条
Tags:     滚动 定义 实现 公式 超酷 function // var 代码 updateContentP
>>> 最新评论:(共有 0 位网友发表了评论)      查看所有评论
  发表评论
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
·本站发布内容均为客观表达作者观点,不代表闪无忧立场,请勿攻击和漫骂
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为
  教程分类
  基础操作   动画特效
  应用开发   组件学习
  As程序   动画教程
  Flash cs3   AS 3.0
  FCS/FMS教程   Loading教程
  Flash与Web   Flash教程连载
  相关文章
·Rectangle对象在flash游戏开发中
·Flash的Socket和AMF3的研究心得
·Flash的Socket和AMF3来开发web游
·制作有视角的迷宫游戏+碰撞
·项目外包, 诚要天下FLASH有能之
·flash小游戏制作:月饼消消看
·Flash Player10功能SaveBitmap直
·面向对象法制作贪吃蛇小游戏
·flash里键盘控制人物行走的另个
·flash中图形位置的半像素渲染问
  热门文章
·Flash进度条的制作详细讲解(组图)
·flash幻灯片网页效果
·Flex 3 AdvancedDataGrid的使用(第二
·全Flash动画网站实现的基础教学
·flash水影效果字
·Flash打造简单的飘雪动画视觉特效
·FLASH+XML相册(附源码)
·超酷flash光晕移动效果
·Flash旋转拖尾文字效果的制作教程
·Flash制作大雪纷飞效果动画
·flash春雷闪电效果
关于我们 - 免责声明 - 网站地图 - 商务服务 - 联系我们 - RSS地图
©CopyRight 2006-2008, 5UFlash.COM, Inc. All Rights Reserved
鲁ICP备06034971号