flash和asp分页的一点心得与flash脚本

时间:2021-05-28

看了这个的一些帖子,学到了很多东西,现在和大家一起分享
  flash现在只是一个显示的功能,过程中看了一些别人的东西,觉得分页似乎有很简单的实现方式.基本上都是用xml传送的.显示用list组件和datagrid都可以,这里我用的是动态文本,因为觉得组件用的太麻烦了.所以用了蠢办法,没办法,找不到更好的~~~下面代码中的list[..]就是动态文本的名趁,一次显示15条

//显示程序如下:

//桢名称"list"
stop();
varlogList=newXML();
varlogroot;
varpage:Number;//当前页
varTpage:Number;//保存总页
varTnum:Number;//总日志数
varlogname:String;//日志分类名称
vartemp;
vari:Number;

//这里我用一个数组储存了对应的id号,如果用组件就不用这么麻烦了
varids=newArray(15);

//两个按钮,用来翻页
bn_u.enabled=false;
bn_d.enabled=false;
if(page==nullorpage<1){
page=1;
}
//------------------------------
//清除函数;
functionmyclear(){
for(i=1;i<16;i++){
ids[i-1]=0;
list["lbn"+i]._visible=false;
list["ltitle"+i].text="";
list["lauthor"+i]="";
list["ltime"+i]="";
}
}
//--------------------------------------
//--------------------------------------
myclear();
pageInfo.text="正在读取数据...";
logList.ignoreWhite=true;
logList.load("Tree_list.asp?log_cat="+cat_id+"&page="+page);
//------------------------------------------------
//get数据函数
functionlogFunc(e){
if(e){
logroot=logList.firstChild;
logname=logroot.attributes.logname;
Tpage=logroot.attributes.Tpage;
Tnum=logroot.attributes.Tnum;
temp=logroot.firstChild;
list.ltitle1.text=Ftitle(temp.firstChild.nodeValue,22);
list.lauthor1=temp.attributes.author;
list.ltime1=temp.attributes.Addtime;
ids[0]=temp.attributes.id;
i=1;
list.lbn1._visible=true;
//循环读取节点
while(temp.nextSibling!=null){
temp=temp.nextSibling;
i++;
//如果是用别的方式显示,只需要改一下就可以了
ids[i-1]=temp.attributes.id;
list["lbn"+i]._visible=true;
list["ltitle"+i].text=Ftitle(temp.firstChild.nodeValue,22);
list["lauthor"+i]=temp.attributes.author;
list["ltime"+i]=temp.attributes.Addtime;
}
pageInfo.text=logname+"共有日志"+Tnum+"篇共"+Tpage+"页当前是第"+page+"页"+"15/页";
bn_u.enabled=true;
bn_d.enabled=true;
}else{
pageInfo.text="当前没有日志。";
list.ltitle1.text="读取数据出错,请联系管理员!";
}
}

//一个自定义的格式标题的函数,怕标题太长
functionFtitle(s,n){
if(length(s)>n){
s=s.substring(0,n-1)+"...";
}
returns;
}
logList.onLoad=logFunc;
//-------------------------------------
//按钮动作
Bn_up=newObject();
//按钮事件,判断页面大小是否超过值
Bn_up.click=function(evt){
if(page>1){
_root.page--;
gotoAndPlay("cycle");
}else{
stop();
}
};
Bn_d=newObject();
Bn_d.click=function(evt){
if(page<Tpage){
_root.page++;
gotoAndPlay("cycle");
}else{
stop();
}
};
bn_u.addEventListener("click",Bn_up);
bn_d.addEventListener("click",Bn_d);

桢"cycle"只有一个话:
gotoAndPlay("list");
//形成一个简单的循环

Tree_list.asp:
//log是我的日志表,log_cat是分类表

  下面的asp很清楚了

<?xmlversion="1.0"encoding="gb2312"?>
<%
Response.ContentType="text/xml"
Response.CacheControl="no-cache"
Response.AddHeader"Pragma","no-cache"
Response.Expires=0
dimlog_cat,page,pageSize,Tnum,Tpage,log_name
page=TreeRequest("page",1)
log_cat=TreeRequest("log_cat",1)
pageSize=15
callTree_rs
iflog_cat=0orlog_cat=""then
sql="select*fromlogorderbywritten_timeDESC,log_IDDESC"
else
sql="select*fromlog,log_catwherelog.cat_id=log_cat.IDandcat_id="&log_cat&"orderbywritten_timeDESC,log_IDDESC"
Endif
rs.opensql,conn,1,1
rs.PageSize=pageSize
Tnum=rs.RecordCount
Tpage=Int(Tnum/pageSize*-1)*-1
ifpage=""thenpage=1
ifTnum<>0thenrs.AbsolutePage=page
iflog_cat=0orlog_cat=""then
log_name="[全部分类]"
else
log_name="["&rs("cat_name")&"]"
Endif
'以下输出xml
'------------------------------------------------
response.write("<Treelogname='"&log_name&"'Tnum='"&Tnum&"'Tpage='"&Tpage&"'>")
ifrs.eofthen
rs.close
else
dowhilenotrs.eofandpageSize>0
response.write("<Treesauthor='"&rs("log_author")&"'Addtime='"&rs("written_time")&"'id='"&rs("log_ID")&"'>")
response.write("<![CDATA["&rs("log_tittle")&"]]></Trees>")
pageSize=pageSize-1
rs.movenext
loop
rs.close
Endif
//关闭rs
callTree_rsclose
callTree_conclose
response.write("</Tree>")
%>

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章