[转帖]文本框的可拖动滑块![教程] 好详细
教程出自闪吧!
=========================
文本框的可拖动滑块![教程]
今天和火麒麟老兄讨论文本框的可拖动滑块的制作方法,最终问题得以解决,现大致总结如下:
说明:a)关于动态文本的加载方法,以前说过很多次,不再赘述,不明白的朋友请查看以前的相关帖子!
1.第一关键帧动作:
system.useCodepage = true;
loadVariablesNum("text.txt", 0);//加载外部的文本;
2.滑块按钮上的AS:
on (press) {
startDrag("kuai", true, 150, 105, 150, 290);
}
on (release) {
stopDrag();
}//简单的拖曳,不需要多说!
3.隐藏在滑块按钮下面的一个MC的动作:
onClipEvent(enterFrame){
this._x=_root.kuai._x;
this._y=_root.kuai._y;//让这个MC跟随滑块运动;
_root.tt.scroll= int((87/187)*(int(this._y)-102));//这里是关键,其中的数字87表示文本的总行数;187表示滑块的活动范围,通过滑块的位置来控制文本的翻动; 具体的解释见15楼 _root.aa=int(this._y);// 主场景的aa文本框显示滑块的Y坐标;
_root.bb=_root.tt.maxscroll;// 主场景的bb文本框显示文本的总行数;
_root.cc=_root.tt.scroll;//主场景的cc文本框显示文本的当前第一行行号;
}
提供压缩包(含源文件):
http://www.flash8.net/bbs/viewFile.asp?Boardid=1&ID=85613
详解重要部分
=======================
87--------是通过_root.bb=_root.tt.maxscroll;测试出来的 表示读取主场景的bb文本框显示文本的总行数,也就是要加载的外部文本的总行数;
187-------是滑块上下可移动的范围(有点误差,理论值应该是290-105=185,我实际实验发现187稍微好一点点)
87/187--------就表示显示文本的一行所需要的滑块移动的行树;
102-------是滑块的初始Y坐标;
int(this._y)-102)-------这个值表示当前的滑块向下产生了多少行(也就是象素)的位移;int表示取其整数;
int((87/187)*(int(this._y)-102)---就表示当前的文本应该显示的行序号! 同样int 是取整!因为87/187 不是整数;
------------------------以上其实就是一点数学的玩意!
另外:把源文件中的87该成_root.bb=_root.tt.maxscroll;可以扩大程序的适用范围!毕竟87是特定的文本才有的!