| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > ActionScript教程 > 文章正文 用户登录
google使用技巧
我的餐馆点评网站
提高Google Adsen
提高Google Adsen
网站好的盈利模式
像素字体使用技巧
ViewletBuilder 4
使用report build
使用 Flash Remot
未公开的Flash MX

简单使用2.0制作滚动条           

简单使用2.0制作滚动条

作者:佚名 来源:闪吧 作者: Super-Tomato 更新:2007-1-13 20:47:16 错误报告 我要投稿

之前写过一个简单的教程,但有只是滚动条拖动的计算。。之后就有很多初学者一直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"; //设定文字
文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。