发新话题
打印

[基础] 简单滚动条

本帖已经被作者加入个人空间

简单滚动条

简单滚动条(原创
                        作者:刘常(琴者)
——转载请注明作者——
[效果]
gdt.swf (12.35 KB)
[要求]按住按钮拖动影片剪辑滚动或在影片剪辑上滚动鼠标齿轮也可以滚动。
[步骤]
一、新建影片剪辑,名为“_mc”,输入文字或导入图片;
二、新建影片剪辑,名为“mask_mc”,画一个长方形,宽280、高300;
三、新建按钮元件,名为“_btn”,画一个长方形,宽20、高300;
四、新建图形元件,名为“btnbj_mc”,画一个长方形,宽20、高300;
五、回到主场景,第一层拖入“_mc”,实例名为_mc;第二层拖入“mask_mc”,实例名为mask_mc;第三层拖入“btnbj_mc”;第四层拖入“_btn”,实例名为_btn;第五层写如下动作:
//设置遮罩
_mc.setMask(mask_mc);
//申明影片剪辑滚动距离变量及按钮和按钮背景影片剪辑的可见性设置
var ypgdjl:Number = _mc._height-mask_mc._height;
if (ypgdjl<=0) {
_btn._visible = 0;
} else {
_btn._visible = 1;
}
//设置按钮的高度和坐标
_btn._height = int(mask_mc._height*mask_mc._height/_mc._height);
_btn._x = mask_mc._width;
_btn._y = mask_mc._y;
//按钮按下开始拖动并设置影片剪辑的坐标
var btntdjl:Number = mask_mc._height-_btn._height;
_btn.onPress = function() {
delete _mc.onEnterFrame;
startDrag(this, false, mask_mc._width, mask_mc._y, mask_mc._width, btntdjl);
_mc.onEnterFrame = function() {
this._y = -(int(_btn._y/btntdjl*ypgdjl));
};
};
_btn.onRelease = _btn.onReleaseOutside=function () {
stopDrag();
delete _mc.onEnterFrame;
};
//滚动鼠标齿轮并设置影片剪辑滚动及按钮的坐标
_mc.onRollOver = function() {
mouseListener = new Object();
mouseListener.onMouseWheel = function(delta:Number) {
delete _mc.onEnterFrame;
_mc._y += delta*8;
_mc.onEnterFrame = function() {
_btn._y = -(int(_mc._y*btntdjl/ypgdjl));
if (this._y>=0) {
this._y = 0;
_btn._y = 0;
delete this.onEnterFrame;
}
if (this._y<=-ypgdjl) {
this._y = -ypgdjl;
_btn._y = mask_mc._height-_btn._height;
delete this.onEnterFrame;
}
};
};
Mouse.addListener(mouseListener);
};
_mc.onRollOut = function() {
Mouse.removeListener(mouseListener);
};
[文件]
gdt.fla (80 KB)

[ 本帖最后由 qinz 于 2008-6-25 18:42 编辑 ]

TOP

恩,思路很清晰 ,赞个
不过LZ应当改下,不要onMouseWheel了就不停地滚动,我觉得那样的效果不自然

TOP

TOP

回复 2# 的帖子

可以点击鼠标时停止滚动

TOP

但这样控制不是很别扭吗
我觉得撤掉onEnterFrame,滚轮滑多大,文本就滚动相应的距离更好

TOP

如果,我要在拉杆的两头加上下箭头,应该如何做?谢谢

TOP

提示: 作者被禁止或删除 内容自动屏蔽

TOP

看看

TOP

我要好好学习。

TOP

发新话题