简单使用2.0制作滚动条
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-12
之前写过一个简单的教程,但有只是滚动条拖动的计算。。之后就有很多初学者一直pm来说textfield中的文字增加了,滚动条不会刷新。那么今天有空就拿回来改了一下,顺便弄成class的简单格式,当然有兴趣的朋友可以自己增加功能之后制作成自己的组件 :) 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"; //设定文字 关键词: |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 五彩焰火制作下一篇: 网络版歌词秀——AS制作
关于简单使用2.0制作滚动条的所有评论