学习做FLASH留言本:分页技术 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    分页

这次是做留言板分页 AS+ASP+ACCESS,传递一个id,一个标题title,作者author三种数据,那么就定义一个allId,AllTitle,allAuthor, 然后循环读取数据库把所有数据id的累加在allId里,所有的标题累加在AllTitle里,所有的标题累加在allAuthor里最后把allId,AllTitle,allAuthor传给flash(累加的时候记得加分割符,例如“#,那么allId="i#2#3#........"等等,分割要注意一点)接下来的是flash部分了,

学习做FLASH留言本:分页技术

。在这里我是用LoadVar类来接受数据的。

    定义一个函数

    //这个函数接受三个参数,allId,AllTitle,allAuthor

    function showTitle(allId:StringallTitle:String, allUser:String, allAuthor:String)

    {

    //定义三个数组

    var ids:Array = new Array();

    var titles:Array = new Array();

    var author:Array = new Array();

    //根据分割符,把分割出来的数据放在数组里

    ids = allId.split("#");

    titles = allTitle.split("#");

    author= allUser.split("#");

    //这里是程序的主要部分,请大家注意看了,用一个for循环

    //先是复制出一个影片,然后把数据加进mc里面的变量

    for(var i = 0; i < ids.length; i++)

    {

    //复制mc

    var mc:MovieClip = this.attachMovie("titles","titles" + i,10 * i + 100);

    mc._x = 40;

    mc._y = 220 + i * 35;

    //把相关的信息赋给mc的相应变量

    mc.titleVar = titles[i];

    mc.authorVar = users[i];

    //点击标题时,进入内容

    buttonEvent(mc, ids[i],);

    }

    }

    //定义按钮事件

    function buttonEvent(btn:MovieClip, id:String)

    {

    btn.menuBtn.onPress = function()

    {

    loadMovieNum("content.swf?&titleId=" + id ,0);

    }

    }

    //这是显示分页按钮的函数,这个没什么难点,主要是判断的问题

    //page,当前页数--  pageCount,总页数   ---count,当强显示条,pager一页显示多少条

    function showPage(id:String,count:String,page:String,pageCount:String,pager:Number)

    {

    //复制出一个MC出来,里面包含上一页,下一页,第一页,最后一页,返回首页这些按钮

    if(page != "1" || count * 1 == pager)

    {

    this.attachMovie("pageMC","pageMC",50);

    pageMC._x = 200;

    pageMC._y = 465;

    }

    //第一页

    pageMC.oneBtn.onPress = function()

    {

    //如果是第一页,弹出警告框

    if(count * 1  == pager)

    {

    showAlert("当前页已经是第一页了");

    }

    else

    {

    loadMovieNum("title.swf?&&id=" + id,0);

    }

    }

    //上一页

    pageMC.upBtn.onPress = function()

    {

    //如果是第一页时

    if(page == "1" && count == pager)

    {

    showAlert("没有上一页了");

    }

    else

    {

    var pageNo:Number = page * 1 - 1;

    loadMovieNum("title.swf?&id=" + id + "&pageNo=" + pageNo,0);

    }

    }

    //下一页

    pageMC.nextBtn.onPress = function()

    {

    //当在最后一页时

    if(page == pageCount)

    {

    showAlert("没有下一页了");

    }

    else

    {

    var pageNo:Number = page * 1 + 1;

    loadMovieNum("title.swf?&id=" + id + "&pageNo=" + pageNo,0);

    }

    }

    //最后一页

    pageMC.lastBtn.onPress = function()

    {

    if(page == pageCount)

    {

    showAlert("当前页已经是最后一页了");

    }

    else

    {

    loadMovieNum("title.swf?&id=" + id + "&pageNo=" + pageCount,0);

    }

    }

    //首页

    pageMC.indexBtn.onPress = function()

    {

    loadMovieNum("index.swf",0);

    }

    }

    //弹出警告框函数,即Alert组件

    function showAlert(str:String)

    {

    Alert.yesLabel = "确定";

    Alert.noLabel = "取消";

    Alert.show(str, "提示", Alert.YES|Alert.NO);

    }

这里是最后一步了,用来加载可以输出allId,AllTitle,allAuthor的后台程序文件

    stop();

    System.useCodepage = true; //显示中文

    var pageNo:String; //第几页

    var sendVar:LoadVars = new LoadVars();

    var loadVar:LoadVars = new LoadVars();

    //如果pageNo为空时,把pageNo始终设为第一页

    if(pageNo == null)

    {

    pageNo = "1";

    }

    //把页数传递出去,好让后台程序搜索

    sendVar.pageNo = pageNo;

    sendVar.sendAndLoad("文件名",loadVar,"post");

    loadVar.onLoad = function(success:Boolean)

    {

    if(success)

    {

    page = loadVar.page; //当前页数

    count = loadVar.count; //当前条数,其实这个可以不要,判断改一下就可以

    pageCount = loadVar.pageCount; //总页数

    showPage(id,count,page,pageCount,10);

    showTitle(loadVar.allId,loadVar.allTitle,loadVar.allAuthor);

    }

    else

    {

    _root.gotoAndStop("error");

    }

    }

最新文章