设为首页 加入收藏 网站搜索 繁體中文 中国建站网 — 站长资源分享平台

简单使用2.0制作滚动条

来源:136z.Com 作者:佚名 时间:2005-06-22 00:00:49

之前写过一个简单的教程,但有只是滚动条拖动的计算。。之后就有很多初学者一直pm来说textfield中的文字增加了,滚动条不会刷新。那么今天有空就拿回来改了一下,顺便弄成class的简单格式,当然有兴趣的朋友可以自己增加功能之后制作成自己的组件 :)


http://www.Flash8.net/bbs/UploadFile/2004-12/2004121812109722.swf

class ScrollText{
private var root:MovieClip;
private var barObj:MovieClip;
private var textObj:TextField;
private var text:String = "Coding by Super-Tomato";
public var __width:Number = 300;
public var __height:Number = 200;
public var min:Number;
public var max:Number;
public var inc:Number;

public function ScrollText(mc:MovieClip, depth:Number) {
var target:Object = this;
root = mc.createEmptyMovieClip("__scrollText", depth); //根据使用者提供的深度创建一个mc
createObj(); //建立文本和滚动条
barObj.onPress = function() { //滚动条按下进行拖动的动作
this.onEnterFrame = function() { //此循环是为了得到最新可拖动范围的值
this.startDrag(false, this._x, target.min, this._x, target.max); //设定拖动范围
target.textObj.scroll = int(this._y/target.inc); //根据滚动条的位置设定文字所滚动到的位置
};
}
barObj.onRelease = barObj.onReleaseOutside = function() { //放开滚动条的动作
this.stopDrag(); //停止拖动
delete this.onEnterFrame; //删除循环事件以减少计算量
}
setInterval(this, "refreshScroll", 100); //每100毫秒刷新一次
}
private function createObj():Void {
root.createTextField("__textArea",0,0,0,this.__width,this.__height); //创建文本
textObj = root.__textArea;
textObj.border = true; //显示文本的边框
textObj.text = this.text; //设定文本的文字
barObj = root.createEmptyMovieClip("__scrollBar",1); //建立滚动条
barObj._x = this.__width + 5; //设定滚动条的位置
with(barObj) { //画出滚动条
beginFill(0xFF9900);
lineTo(20, 0);
lineTo(20, this.__height);
lineTo(0, this.__height);
lineTo(0,0);
endFill();
}
}
private function refreshScroll():Void {
textObj.text = this.text; //每100毫秒设定一次文本的文字
var newHeight:Number = textObj._height / textObj.textHeight; //计算文本的高度和文字高度的比例
if(newHeight < 1) { //如果文字的高度大于文本所能够显示的高度
barObj._height = newHeight * textObj._height; //更新滚动条的长度
} else { //文本内容少于显示范围
barObj._height = this.__height; //滚动条的长度就等于原来所设定的高度
}
this.min = textObj._y; //文本的顶点位置
this.max = this.min+(textObj._height - barObj._height); //滚动条所能拖动的最低范围
this.inc = int(Math.abs(this.max-this.min)/textObj.maxscroll); //根据文本最大的滚动值计算滚动条能够拖动的距离
}
}

使用:


var scroller = new ScrollText(this,1); //创建,第一参数是对象, 第二参数是深度
scroller.text = "abcdef"; //设定文字

Tags:

  • 好的评价 如果您觉得好,就请您
      0%(0)
  • 差的评价 如果您觉得差,就请您
      0%(0)
  • 相关文章
    广告赞助

    文章随便看看 设计素材 建站学院 网页模板 视频教程

    网友评论

    共有 0 位网友发表了评论,得分 0 分,平均 0 分    查看完整评论

    用户名: 查看更多评论

    分 值:100分 85分 70分 55分 40分 25分 10分 1分

    内 容:

             通知管理员 验证码: