返回   webstudio Forums > FLASH > Flash Tutorials教程讨论及源文件

发表新主题 回复
置顶的主题  
主题工具 显示模式
旧 2006-12-28, 05:25 PM   #11
leoshum
初级会员
级别:0 | 在线时长:0小时 | 升级还需:5小时
 
注册日期: 06-12
帖子: 4
现金:8金币
资产:8金币
leoshum 向着好的方向发展
默认 回复: 超酷滚动公式自定义滚动条

这都是很好的练习,多谢提供
leoshum 当前离线  
回复时引用此帖
旧 2006-12-28, 10:28 PM   #12
egoldy
沙漠孤鹰
级别:22 | 在线时长:617小时 | 升级还需:4小时级别:22 | 在线时长:617小时 | 升级还需:4小时级别:22 | 在线时长:617小时 | 升级还需:4小时级别:22 | 在线时长:617小时 | 升级还需:4小时
 
egoldy 的头像
 
注册日期: 04-07
住址: 北京
帖子: 2835
精华:4
现金:2411金币
资产:1668861金币
声望: 650
egoldy 有着人尽皆知的贡献和荣耀egoldy 有着人尽皆知的贡献和荣耀egoldy 有着人尽皆知的贡献和荣耀egoldy 有着人尽皆知的贡献和荣耀egoldy 有着人尽皆知的贡献和荣耀egoldy 有着人尽皆知的贡献和荣耀
发送 MSN 消息给 egoldy 发送 QQ 消息给 egoldy
默认 回复: 超酷滚动公式自定义滚动条

leoshum, welecome to webstudio. 互相学习

http://www.webstudio.com.cn/wssign/egoldyfoot.jpg
egoldy 当前离线  
回复时引用此帖
旧 2007-01-02, 08:29 PM   #13
erbao
初级会员
级别:0 | 在线时长:1小时 | 升级还需:4小时
 
注册日期: 06-03
帖子: 2
现金:4金币
资产:4金币
声望: 10
erbao 向着好的方向发展
问题 回复: 超酷滚动公式自定义滚动条

mouse_scrollbar_ease.swf这个滚动条还有一点小毛病,不知道怎么解决!

就是鼠标滚动的时候,上下都会多出23PX,而且滚动到最下面时,滑块超出了向下的按钮范围。不知道我说的清楚不。
erbao 当前离线  
回复时引用此帖
旧 2007-01-02, 11:20 PM   #14
egoldy
沙漠孤鹰
级别:22 | 在线时长:617小时 | 升级还需:4小时级别:22 | 在线时长:617小时 | 升级还需:4小时级别:22 | 在线时长:617小时 | 升级还需:4小时级别:22 | 在线时长:617小时 | 升级还需:4小时
 
egoldy 的头像
 
注册日期: 04-07
住址: 北京
帖子: 2835
精华:4
现金:2411金币
资产:1668861金币
声望: 650
egoldy 有着人尽皆知的贡献和荣耀egoldy 有着人尽皆知的贡献和荣耀egoldy 有着人尽皆知的贡献和荣耀egoldy 有着人尽皆知的贡献和荣耀egoldy 有着人尽皆知的贡献和荣耀egoldy 有着人尽皆知的贡献和荣耀
发送 MSN 消息给 egoldy 发送 QQ 消息给 egoldy
默认 回复: 超酷滚动公式自定义滚动条

确实存在如你所说的现象.
代码:
 
//+++++++++++++++++++++++++++++++++++++++++++ 
	//中键滚动代码段 
	if (mouse == true) { 
		var mouseListener = new Object(); 
		//创建onMouseWheel函数 
		mouseListener.onMouseWheel = function(delta) { 
			if (dragger._y<bottom) { 
				dragger._y += delta+3; 
				updateContentPos(); 
			} else { 
			 dragger._y = bottom-3; 
			} 
			if (dragger._y>top) { 
				dragger._y += delta; 
				updateContentPos(); 
			} else { 
				dragger._y = top; 
			} 
		}; 
		Mouse.addListener(mouseListener); 
	} 
	//++++++++++++++++++++++++++++++++++++++++++++
如果你测试delta的值,它会输出3,也就是每次滚动时移支的长度是3,最初做的时候忽视了这个问题,红色代码部分为修正的结果.并已在教程中心修正了.
已经有2000多人看过了,但只有你发现了问题, ,感谢!
egoldy 当前离线  
回复时引用此帖
旧 2007-01-03, 02:47 PM   #15
jare_web
初级会员
级别:0 | 在线时长:2小时 | 升级还需:3小时
 
注册日期: 06-11
帖子: 6
现金:12金币
资产:12金币
声望: 10
jare_web 向着好的方向发展
默认 回复: 超酷滚动公式自定义滚动条

不错!讲得很详细啊!

疑问太多了!
jare_web 当前离线  
回复时引用此帖
旧 2007-01-11, 12:28 PM   #16
erbao
初级会员
级别:0 | 在线时长:1小时 | 升级还需:4小时
 
注册日期: 06-03
帖子: 2
现金:4金币
资产:4金币
声望: 10
erbao 向着好的方向发展
警告 回复: 超酷滚动公式自定义滚动条

源文件好像是mx 2004的,不知道是不是我用flash8点的原因,测试的时候感觉还是有点问题,我就在egoldy的基础上修改了一下!
1.原先的滚动是与习惯相反的,所以我把滚动的显示也改成习惯常规的了!
2.就egoldy的改动感觉内容显示还是有些小的偏差,就以自己的看法修改了一下。
代码:
 
//+++++++++++++++++++++++++++++++++++++++++++ 
	//中键滚动代码段 
	if (mouse == true) { 
		var mouseListener = new Object(); 
		//创建onMouseWheel函数 
		mouseListener.onMouseWheel = function(delta) { 
			if (dragger._y<bottom) { 
				dragger._y -= delta-7; 
				updateContentPos(); 
			} else { 
			 dragger._y = bottom; 
			} 
			if (dragger._y>top) { 
				dragger._y -= delta+7; 
				updateContentPos(); 
			} else { 
				dragger._y = top; 
			} 
		}; 
		Mouse.addListener(mouseListener); 
	} 
	//++++++++++++++++++++++++++++++++++++++++++++
这样感觉好像可以了!

此帖于 2007-01-11 12:47 PM 被 erbao 编辑。 原因: 修改!
erbao 当前离线  
回复时引用此帖
旧 2007-02-04, 09:48 PM   #17
天边
初级会员
级别:0 | 在线时长:0小时 | 升级还需:5小时
 
注册日期: 07-02
帖子: 1
现金:2金币
资产:2金币
声望: 10
天边 向着好的方向发展
箭头 回复: 超酷滚动公式自定义滚动条

你的代码存在两个问题:
1.没用到 onEnterFrame 时没有删除把它删除掉,长时间运行onEnterFrame是对系统资源的浪费;
2.鼠标移动时的贞听器也没有卸掉,如果有多个鼠标移动事件将出乱;

我已经做修改:
代码:
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;
	var mouseListener:Object = new Object();
	//在开始前检测我们的滚动是否可滚动,如果内容不足滚动,隐藏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);
	}
	function contentsoll(targetMc)
	{
		if (!easing || easing == undefined) {
			targetMc._y = targetMc.newY;
			delete targetMc.onEnterFrame;
		} else {
			targetMc._y += (targetMc.newY-targetMc._y)/easingSpeed;
			if (Math.abs(targetMc.newY-targetMc._y)<=1) {
				delete targetMc.onEnterFrame;
			}
		}
		trace(contentMain.newY);
	}
	//拖动滑块
	dragger.onPress = function()
	{
		startDrag(this, false, left, top, right, bottom);
		mouseListener.onMouseMove = function()
		{
			updateContentPos();
			contentMain.onEnterFrame = function()
			{
				contentsoll(contentMain);
			};
		};
		Mouse.addListener(mouseListener);
	};
	dragger.onRelease = dragger.onReleaseOutside=function ()
	{
		stopDrag();
		Mouse.removeListener(mouseListener);
	};
	btnup.onPress = function()
	{
		this.onEnterFrame = function()
		{
			//技巧
			dragger._y = Math.max(top, dragger._y-moveSpeed);
			updateContentPos();
		};
		contentMain.onEnterFrame = function()
		{
			contentsoll(contentMain);
		};
	};
	btnup.onRelease = function()
	{
		delete this.onEnterFrame;
	};
	btndown.onPress = function()
	{
		this.onEnterFrame = function()
		{
			dragger._y = Math.min(bottom, dragger._y+moveSpeed);
			updateContentPos();
		};
		contentMain.onEnterFrame = function()
		{
			contentsoll(contentMain);
		};
	};
	btndown.onRelease = function()
	{
		delete this.onEnterFrame;
	};
	updateContentPos();
	//
	//自动滚动代码段
	if (auto == true) {
		onEnterFrame = function ()
		{
			if (dragger._y<bottom) {
				dragger._y = dragger._y+0.2;
				updateContentPos();
				contentsoll(contentMain);
			} else {
				dragger._y = top;
			}
		};
	}
	//                                                             
}
//调用函数
scrolling(true, false);
有时间在把他改写为类,呵呵

有什么不对的请高手继续改
天边 当前离线  
回复时引用此帖
旧 2007-03-15, 12:51 PM   #18
nateriver
阿布
级别:0 | 在线时长:0小时 | 升级还需:5小时
 
注册日期: 07-03
帖子: 1
现金:4金币
资产:4金币
声望: 10
nateriver 向着好的方向发展
发送 QQ 消息给 nateriver
默认 回复: 超酷滚动公式自定义滚动条

我对flash建站很感兴趣.不过现在还是处于菜鸟级阶段.想咨询下下大虾的这本书适合我们初学者学习吗?
或者这本教材需要什么样的基础或者前期知识?谢拉!!
帅哥 nateriver 当前离线  
回复时引用此帖
旧 2007-03-23, 05:38 PM   #19
sonyhong
初级会员
级别:0 | 在线时长:3小时 | 升级还需:2小时
 
注册日期: 07-03
帖子: 8
现金:19金币
资产:19金币
声望: 10
sonyhong 向着好的方向发展
默认 回复: 超酷滚动公式自定义滚动条

在flash8里,不用代码怎么设置scrollbar的颜色和大小呢
sonyhong 当前离线  
回复时引用此帖
旧 2007-03-27, 05:29 PM   #20
goo
初级会员
级别:0 | 在线时长:0小时 | 升级还需:5小时
 
注册日期: 07-03
帖子: 1
现金:2金币
资产:2金币
声望: 10
goo 向着好的方向发展
默认 回复: 超酷滚动公式自定义滚动条

的确是一本好书,通过这了例子认识了这本书。

有三个问题请教:
1、一开始是针对文本框滚动的,写到后面怎么针对的是MovieClip?难道文本框无法实现缓动吗?如果行,怎么实现?
2、滚动条好像没有按比例缩放,就是说文本越长滚动条应该越短。
3、scrollbar.fla例子,假如文本是动态加载的,如何计算其高度?

谢谢!
goo 当前离线  
回复时引用此帖
发表新主题 回复

书签

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码

论坛跳转

所有时间均为格林尼治时间 +9。现在的时间是 09:11 PM


copyright by webstudio.com.cn. All Rights Reserved.
Powered by vBulletin® 版本 3.8.3
版权所有 ©2000 - 2018,Jelsoft Enterprises Ltd.
增强包 [3.4] 制作: PHP源动力   官方中文站: vBulletin 中文