+ -
当前位置:首页 → 问答吧 → 请问用flash如何制作带滑块的滚动条呀?

请问用flash如何制作带滑块的滚动条呀?

时间:2006-09-04

来源:互联网

在网站上找了很多.不是效果不一样就是很复杂.我只想做一种和IE一样的那个带滑块的滚动条,是静态文本的.麻烦老火教一下步骤.说的模糊的话我又看不懂..谢谢!

作者: jamesbobo   发布时间: 2006-09-04

自带的不行?

作者: HBrO   发布时间: 2006-09-04

这里有一款不错的源文件,可以是影片图片等,也可以是文字
http://www.zhugao.cn/downloads/study_flash/scroll_002.rar

作者: luzhugao   发布时间: 2006-09-04

楼上的这个太复杂,看得眼花。

作者: lzgxp2005   发布时间: 2006-09-04

我同意斑竹的,flash自带的就不错啊,还可以diy颜色什么的啊!

作者: duoduo005   发布时间: 2006-09-05

FLASH本身就有嘛

作者: flash297359   发布时间: 2006-09-05

自带的样式没有动呀,我主要是想学习是怎么写出来的.以后可以自己做其他样式的滚动条呀.用自带的有点单一.所以想请这里的高手教我做一下和自带的那种效果一样的就行

作者: jamesbobo   发布时间: 2006-09-06

谢谢

作者: jamesbobo   发布时间: 2006-09-06

this.createClassObject(mx.controls.UIScrollBar, "my_sb", 20);

// Set the target text field for the scroll bar.
my_sb.setScrollTarget(my_txt);

// Size it to match the text field.
my_sb.setSize(16, my_txt._height);

// Move it next to the text field.
my_sb.move(my_txt._x + my_txt._width, my_txt._y);
把你的静态文本实例名取为my_txt

作者: salanglillian   发布时间: 2006-09-06

这个我会,
一共11句代码搞定,希望对LZ有帮助
场景一个MC,里面有3个东西,1,要滑动的MC,2,滑动条,3,折罩图形  4,AS语句(放最上层)
分别名字是:picture,scrollBar,mask

到4,AS语句里面写

scrollBar.x = scrollBar._x;//定义滚动条的X坐标
scrollBar.miny = scrollBar._y;//定义滚动条的最小Y坐标
scrollBar.maxy = mask._y+mask._height-scrollBar._height;//定义滚动条的最大Y坐标
scrollBar.onPress = function() {
       this.startDrag(false, this.x, this.miny, this.x, this.maxy);//限制他的拖动范围
};
scrollBar.onMouseUp = function() {
       this.stopDrag();//释放鼠标就停止拖动滚动条
};
var rate = (mask._height-picture._height)/scrollBar.maxy; //设定Y 的比率
onEnterFrame = function () {
       picture._y += (scrollBar._y*rate-picture._y)*0.2;//根据滚动条和MC的Y和 比率,求得MC的Y坐标,并用缓冲公试制作效果,
};

希望对你有帮助

作者: human9151   发布时间: 2006-09-07

我这里有一个比较好用的,呵呵
下载源文件
引用:
//  http://log.7thpark.com
//各mc纵坐标自动基于scrollMask定位,顶端对齐;
//scoll的控制条部分根据scrollBar的横坐标自动居中对齐;
//不需要修改代码
var _maskY:Number = int(scrollMask._y);
var _maskH:Number = int(scrollMask._height);
var _barH:Number = int(scrollBar._height);
var _upH:Number = int(scrollUp._height);
var _downH:Number = int(scrollDown._height);
var top:Number = _maskY+_upH;
var bottom:Number = _maskY+_maskH-_barH-_downH;
scrollBar._top = top;
scrollBar._bottom = bottom;
left = int(scrollBar._x);
scrollBar._y = _maskY+_upH;
scrollContent._y = _maskY;
scrollLine._y = _maskY;
scrollLine._height = _maskH;
scrollUp._y = _maskY;
scrollDown._y = _maskY+_maskH-_downH;
var barC:Number = int(scrollBar._x+scrollBar._width/2)+1;
scrollLine._x = int(barC-scrollLine._width/2);
scrollUp._x = int(barC-scrollUp._width/2);
scrollDown._x = int(barC-scrollDown._width/2);
var speed:Number = 6;
var nSpeedLow:Number = 1;
var nSpeedHigh:Number = 3;
dis = (scrollContent._height-_maskH+10)/(bottom-top);
contentStartY = scrollContent._y;
var down:Boolean = true;
scrollContent._y = bottom;
scrollBar.onPress = function() {
  scrollBar.startDrag(0, left, top, left, bottom);
  down = true;
};
scrollBar.onMouseUp = function() {
  scrollBar.stopDrag();
  down = true;
};
this.onEnterFrame = function() {
  if (down) {
    disMove = (scrollBar._y-top)*dis;
    scrollContent.yMove = contentStartY-disMove;
  }
  // end if                                       
  scrollContent._y = scrollContent._y+(scrollContent.yMove-scrollContent._y)/speed;
};
//mousewheel event------------------------
mouseListener = new Object();
mouseListener.onMouseWheel = function(delta) {
  down = true;
  scrollBar._y = scrollBar._y-delta*3;
  if (scrollBar._y>=bottom) {
    scrollBar._y = bottom;
  } else if (scrollBar._y<=top) {
    scrollBar._y = top;
  }
  // end if                                    
};
Mouse.addListener(mouseListener);
//up and down btn event
scrollBar.onEnterFrame = function() {
  if (this.d && this._y<this._bottom) {
    this._y += this.s;
  }
  //end if  
  if (this.u && this._y>this._top) {
    this._y -= this.s;
  }
  //end if  
};
//down
scrollDown.onRollOver = function() {
  scrollBar.d = true;
  scrollBar.s = nSpeedLow;
  down = true;
};
scrollDown.onPress = function() {
  scrollBar.d = true;
  scrollBar.s = nSpeedHigh;
  down = true;
};
scrollDown.onRelease = function() {
  scrollBar.d = true;
  scrollBar.s = nSpeedLow;
  down = true;
};
scrollDown.onRollOut = function() {
  scrollBar.d = false;
  scrollBar.s = 0;
  down = false;
};
scrollDown.onReleaseOutside = function() {
  scrollBar.d = false;
  scrollBar.s = 0;
  down = false;
};
//up
scrollUp.onRollOver = function() {
  scrollBar.u = true;
  scrollBar.s = nSpeedLow;
  down = true;
};
scrollUp.onPress = function() {
  scrollBar.u = true;
  scrollBar.s = nSpeedHigh;
  down = true;
};
scrollUp.onRelease = function() {
  scrollBar.u = true;
  scrollBar.s = nSpeedLow;
  down = true;
};
scrollUp.onRollOut = function() {
  scrollBar.u = false;
  scrollBar.s = 0;
  down = false;
};
scrollUp.onReleaseOutside = function() {
  scrollBar.u = false;
  scrollBar.s = 0;
  down = false;
};

作者: airfar   发布时间: 2006-10-12

全是滚动MC的,有人能提供个直接滚动文本的吗?

作者: jimohuoshan   发布时间: 2006-10-12

引用:
原帖由 jimohuoshan 于 2006-10-12 14:47 发表
全是滚动MC的,有人能提供个直接滚动文本的吗?
mc里面放文本不一样马?呵呵

作者: airfar   发布时间: 2006-10-12

像这种东西,自己应该多动动脑子!

用setInterval和startDrag()
很简单的搞定!

作者: kenjor01   发布时间: 2006-10-12

当然不一样,如果文本很多,滚动MC很占资源!

作者: jimohuoshan   发布时间: 2006-10-12

11楼兄弟正解 非常简单 补充一下 把文字层命名 scrollContent 完美!

作者: xxx974   发布时间: 2011-03-09

mc占资源不知道有多少啊 觉得把文本存成png格式 也很省啊

作者: xxx974   发布时间: 2011-03-09