打印

[基础] [教程] 响应鼠标滚动轴的缓动遮罩内容

http://madforit.blog.sohu.com/43494156.html
--------------------------------------------------------------------

这个是在线演示,懒得做preloader,不过不大,耐心等下就看到了:
http://www.keyframe1.com/tute/mouseWheel/

现在很多flash网站越来越多的使用鼠标滚动轴,这样更符合普通用户的习惯,对用户更有好,对推广flash网站还是有一定好处的。

==================
我们现在就开始做
==================

先简单分析下我们要做的内容:
- 创建遮罩内容;
- 让遮罩内容响应我们的鼠标滚动轴;
- 添加缓动函数给遮罩内容;

我们做一个纵向的遮罩内容滚动,为演示方便,我们挑选一个较高的图片,现在就开始。

1)导入图片,然后把图片转为影片剪辑,把影片剪辑拽到flash工作区适当的位置,命名为"spider" (当然你自己可以随便命名了,只不过我使用了一张蜘蛛侠的图片所以就叫"spider");
2)创建新图层,命名为"actions";
3)锁定所有图层,点击actions图层的第一关键桢,现在我们所有的工作可以交给actionscript来处理了

我们先建立遮罩影片剪辑,大小位置随便你,颜色也无所谓因为是用来做遮罩的
复制内容到剪贴板
代码:
this.createEmptyMovieClip("mask",this.getNextHighestDepth());
mask.lineStyle(2,0x555555,100);
mask.beginFill(0xcccccc,100);
mask.moveTo(0,0);
mask.lineTo(300,0);
mask.lineTo(300,310);
mask.lineTo(0,310);
mask.lineTo(0,0);
mask._x = 230;
mask._y = 50;
mask.endFill();
用新建立的mask影片剪辑把spider遮罩起来
复制内容到剪贴板
代码:
spider.setMask(mask);
鼠标滚动轴响应事件其实特别简单
复制内容到剪贴板
代码:
mouseListener = new Object();
mouseListener.onMouseWheel = function(amount) {
    ymove = amount*30.5;
    if(_root._xmouse > mask._x && _root._xmouse < mask._x + mask._width && _root._ymouse > mask._y && _root._ymouse < mask._y + mask._height){
        dy += ymove;
        top = -440;
        bottom = 50;
        if(dy > bottom)dy = bottom;
        if(dy < top)dy = top;
    }
}
Mouse.addListener(mouseListener);
缓动函数是特别有用也是常用的效果,你可以自己写,也可以用tween或fusekit,当然网上也有很多高手写的缓动class,这里是我自己写的一个特别简单的
复制内容到剪贴板
代码:
spider.onEnterFrame = function(){
    speed = 6;
    oldy = this._y;
    this._y += (dy - oldy)/speed;
}
初始化spider影片剪辑的Y坐标
复制内容到剪贴板
代码:
dy = 0;
现在测试你的flash影片,应该可以看到我们的响应鼠标滚动轴的缓动遮罩内容了。

[ 本帖最后由 markmaoji 于 2007-4-25 16:33 编辑 ]
附件: 您所在的用户组无法下载或查看附件,您需要注册/登录后才能查看!
本帖最近评分记录
  • mirycat 威望 +2 原创内容 2006-12-20 20:19
为什么不用 Tween呢 ^_^
随便你啦
这地方我个人觉得不用Tween更好。Tween太复杂了。麻烦……^_^

TOP

还在为头像烦恼?还在为不能关注好友动态烦忧?快来蓝色理想家园吧!
看看先

TOP

学习下!!

TOP

学习一下.谢谢楼主

TOP

楼主的东西很好,偶要好好学下

TOP

楼主能不能发个有下拉滚动条和滚动轴一体的效果的,偶想学习下,谢谢了

TOP

牛人啊,这都能够实现。
www.soutian.net

TOP