用纯AS写滚动条
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-08
ndongtiao_mc.xiasanjiao_mc._rotation = 180; //定位下三角形 gundongtiao_mc.xiasanjiao_mc.dingwei(0, gundongtiao_mc._height/2-gundongtiao_mc.xiafangkuai_mc._height/2); ///////////绘制滑块 //长宽矩形法绘制滑块矩形 gundongtiao_mc.createEmptyMovieClip("huakuai_mc", 5); gundongtiao_mc.huakuai_mc.beginFill(huakuaibeijingse, huakuaitoumingdu); gundongtiao_mc.huakuai_mc.changkuanjuxing(-gundongtiao_mc._width/2, 0, gundongtiao_mc._width, gundongtiao_mc._width, huakuaibiankuangcuxi, huakuaibiankuangse, huakuaibiankuangtoumingdou); gundongtiao_mc.huakuai_mc.endFill(); //---------滚动初始化---------// //滑块的初始高度,并记录 chushigaodu = Math.floor(gundongtiao_mc.xiafangkuai_mc._y-gundongtiao_mc.shangfangkuai_mc._y-gundongtiao_mc.shangfangkuai_mc._height); //初始化滑块Y坐标,并记录 ychushiweizhi = gundongtiao_mc.huakuai_mc._y=Math.round(gundongtiao_mc.shangfangkuai_mc._y+gundongtiao_mc. shangfangkuai_mc._height/2); //小滑块不可见 gundongtiao_mc.huakuai_mc._visible = false; }; //%%%%%%%%%%%%%%%%滚动代码%%%%%%%%%%%%%%%%%%// //////////为父剪辑的文字域注册侦听器,以侦听在文字域产生变化时,也就是在文本被载入进来时,执行下面的代码。这样就不用担心代码执行顺序问题! var zhentingqi = new Object(); wenben_txt.addListener(zhentingqi); //当文字域载入完成时,为什么触发onScroller事件,而不是onChange事件? zhentingqi.onScroller = function() { trace("-------------------------"); trace("滚动总行数="+wenben_txt.maxscroll); trace("当前行="+wenben_txt.scroll); //判断滑块儿是否显示,并根据文本内容多少定义滑块高度 if (_parent.wenben_txt.maxscroll != 1) { gundongtiao_mc.huakuai_mc._visible = true; //定义一个高度因子,此因子随加载文本的增多,将无限趋向于1。 var gaoduyinzi = 1-(wenben_txt.maxscroll-1.5)/wenben_txt.maxscroll; //初始化滑块的高度,它的最小高度定义为2象素。 gaodu = gundongtiao_mc.huakuai_mc._height=Math.floor(chushigaodu*Math.pow(gaoduyinzi, 1/6)); trace("滑块高="+gaodu); } //滑块滚动的总象素数 var zongxiangsu = gundongtiao_mc.xiafangkuai_mc._y-gundongtiao_mc.shangfangkuai_mc._y-gundongtiao_mc.shangfangkuai_mc._height-gundongtiao_mc.huakuai_mc._height; //定义平均象素,每一行所包含的像素数,即文本域每滚动一行,滑块需要移动的象素数。 var pingjunxiangsu = zongxiangsu/(wenben_txt.maxscroll-1); //定义平均行数,每一像素包含的行数,即滑块每移动一象素,文本域在理论上应当滚动的行数(尽管非整数行在视觉上没有反映)。 var pingjunhangshu = (wenben_txt.maxscroll-1)/Math.floor(zongxiangsu); trace("滚动总象素="+zongxiangsu); trace("平均象素值="+pingjunxiangsu); ///////////定义上按钮 gundongtiao_mc.shangfangkuai_mc.onRollOver = function() { gundongtiao_mc.shangsanjiao_mc.shangse(jiluhuodongse); this.onPress = function() { this.onEnterFrame = function() { wenben_txt.scroll--; // 使滑块儿移动到相应的位置。 gundongtiao_mc.huakuai_mc._y = ychushiweizhi+pingjunxiangsu*(wenben_txt.scroll-1); trace("滑块Y坐标="+gundongtiao_mc.huakuai_mc._y); }; }; this.onRelease = function() { delete this.onEnterFrame; }; this.onRollOut = function() { gundongtiao_mc.shangsanjiao_mc.shangse(jiluyuanshise); }; }; ////// |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于用纯AS写滚动条的所有评论