勤学思培训网SZDFSL
  • 总算认识flash 和asp 分页的一点心得

    最近无聊,做了一个自己bog的FLASH界面,用的blog是破废墟的版本. 看了这个的一些帖子,学到了很多东西,现在和大家一起分享 flash现在只是一个显示的功能,过程中看了一些别人的东西,觉得分页似乎有很简单的实现方式. 效果可以看我的: 基本上都是用xml传送的. 显示用 list 组件和 datagrid 都可以,这里我用的是动态文本,因为觉得组件用的太麻烦了. 所以用了蠢办法,没办法,找不到更好的~~~ 下面代码中的 list[..]就是动态文本的名趁,一次显示15条 //显示程序如下:
    //桢名称 "list"
    stop();
    var logList = new XML();
    var logroot;
    var //当前页
    var T //保存总页
    var //总日志数
    var //日志分类名称
    var temp;
    var i:Number;

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

    //两个按钮,用来翻页
    = false;
    = false;
    if (page == null or pagepage = 1;
    }
    //------------------------------
    //清除函数;
    function myclear() {
    for (i=1; iids[i-1] = 0;
    list["lbn"+i]._visible = false;
    list["ltitle"+i].text = "";
    list["lauthor"+i] = "";
    list["ltime"+i] = "";
    }
    }
    //--------------------------------------
    //--------------------------------------
    myclear();
    = "正在读取数据...";
    = true;
    ("?log_cat="+cat_id+"&page="+page);
    //------------------------------------------------
    //get数据函数
    function logFunc(e) {
    if (e) {
    logroot = ;
    logname = ;
    Tpage = ;
    Tnum = ;
    temp = ;
    = Ftitle(, 22);
    = ;
    = ;
    ids[0] = ;
    i = 1;
    = true;
    //循环读取节点
    while ( != null) {
    temp = ;
    i++;
    //如果是用别的方式显示,只需要改一下就可以了
    ids[i-1] = ;
    list["lbn"+i]._visible = true;
    list["ltitle"+i].text = Ftitle(, 22);
    list["lauthor"+i] = ;
    list["ltime"+i] = ;
    }
    = logname+"共有日志"+Tnum+"篇 共"+Tpage+"页 当前是第"+page+"页 "+"15/页";
    = true;
    = true;
    } else {
    = "当前没有日志。";
    = "读取数据出错,请联系管理员!";
    }
    }

    //一个自定义的格式标题的函数,怕标题太长
    function Ftitle(s, n) {
    if (length(s)>n) {
    s = (0, n-1)+"...";
    }
    return s;
    }
    = logFunc;
    //-------------------------------------
    //按钮动作
    Bn_up = new Object();
    //按钮事件,判断页面大小是否超过值
    = function(evt) {
    if (page>1) {
    --;
    gotoAndPlay("cycle");
    } else {
    stop();
    }
    };
    Bn_d = new Object();
    = function(evt) {
    if (++;
    gotoAndPlay("cycle");
    } else {
    stop();
    }
    };
    ("click", Bn_up);
    ("click", Bn_d);

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

    :
    //log 是我的日志表 ,log_cat是分类表
    下面的asp很清楚了


    = "text/xml"
    = "no-cache"
    "Pragma", "no-cache"
    = 0
    dim log_cat,page,pageSize,Tnum,Tpage,log_name
    page=TreeRequest("page",1)
    log_cat=TreeRequest("log_cat",1)
    pageSize=15
    call Tree_rs
    if log_cat=0 or log_cat="" then
    sql="select * from log order by written_time DESC,log_ID DESC"
    else
    sql="select * from log,log_cat where = and cat_id="&log_cat&" order by written_time DESC,log_ID DESC"
    End if
    sql,conn,1,1
    =pageSize
    Tnum=
    Tpage=Int(Tnum/pageSize*-1)*-1
    if page="" then page=1
    if Tnum0 then =page
    if log_cat=0 or log_cat="" then
    log_name="[全部分类]"
    else
    log_name="["&rs("cat_name")&"]"
    End if
    ’以下输出xml
    ’------------------------------------------------
    ("")
    if then

    else
    do while not and pageSize>0
    ("")
    ("")
    pageSize=pageSize-1

    loop

    End if
    //关闭rs
    call Tree_rsclose
    call Tree_conclose
    ("")
    %> 代码好象很乱,希望能对正在做这个的朋友有点帮助,如果以上有bug,请指教