loading ...
loading...

2007-04-25 | 缓动响应鼠标滚轮遮罩

分享

首发蓝色理想经典论坛: http://bbs.blueidea.com/thread-2705766-1-1.html

-----------------------------

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

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

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

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

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

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

我们先建立遮罩影片剪辑,大小位置随便你,颜色也无所谓因为是用来做遮罩的

CODE:
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遮罩起来

CODE:
spider.setMask(mask);

鼠标滚动轴响应事件其实特别简单

CODE:
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,这里是我自己写的一个特别简单的

CODE:
spider.onEnterFrame = function(){
    speed = 6;
    oldy = this._y;
    this._y += (dy - oldy)/speed;
}

初始化spider影片剪辑的Y坐标

CODE:
dy = 0;

现在测试你的flash影片,应该可以看到我们的响应鼠标滚动轴的缓动遮罩内容了。
分享 分享 |  评论 (0) |  阅读 (?)  |  固定链接 |  类别 (技术教程) |  发表于 16:19  | 最后修改于 2007-04-25 16:21
搜狐博客温馨提示:警惕博客留言诈骗, 搜狐博客管理员的正确地址为http://admin.blog.sohu.com, 其他都是冒牌。搜狐博客官方不会要求参加活动的各位博友缴纳任何的手续费用。请勿轻信留言、评论中的中奖信息,更不要拨打陌生电话及向陌生帐户汇款,谨防受骗!识别更多网络骗术,请 点击查看详情
您还未登录,只能匿名发表评论。或者您可以 登录 后发表。
 
  一个单亲妈妈的心愿:治好7岁儿子的白血病
表  情:
加载中...
回复通知: 同时用小纸条通知对方该回复