素材图片酷 图酷镜像二 | 壁纸酷 壁纸镜像二 | 写真扫图酷 | Free Wallpaper | 贴图论坛 | ·设为首页 ·加入收藏
您现在的位置: 图酷 >> 自习室 >> 多媒体制作 >> Flash >> 教程实例 >> 教程正文

  没有公告


关于用flalsh做留言版的分页教程
作者: 弃天笑
教程来源: 闪吧
教程等级:         ★★★
教程录入: 烤焦面包
教程审核: 烤焦面包
添加时间: 2006-5-26
点击次数:
字体选择: 【字体:
相关操作: 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
热门信息:
推荐内容:

最近有些朋友问我用flash做留言版时,如何解决分页问题。刚刚我最近用flash + servlet + javaBean做了一个小型的flash论坛
其中也用到了分页技术,所以在发布出来给大家讨论一下,参考一下。
当然,最主要的是要先在后台程序里实现好分页技术,但这不是我讨论的范围内。比如用ASP,JSP等做出分页向flash输出内容很容易吧。
 我在这里说的是flash如何分析后台程序传过来的数据。如果每次都发送5条或者10条,就非常容易,但是如果你定义每页是10条的分页的话
 那么它可能是要显示1~10条数据。根据留言的条数,第几页而动态产生的
 那么下我就开始正式讲解一下在flash里实现的代码(这里假设读书已经有了actionsrcipt的基础)
 我在后台程序把同一条内容都累再在一个字符串中,这里我打个例子 
 例如传递一个id,一个标题title,作者author三种数据, 
 那么就定义一个allId,AllTitle,allAuthor, 
 然后循环读取数据库 
 把所有数据id的累加在allId里,所有的标题累加在AllTitle里,所有的标题累加在allAuthor里 
 最后把allId,AllTitle,allAuthor传给flash 
 (累加的时候记得加分割符,例如“#,那么allId="i#2#3#........"等等,分割要注意一点) 
 接下来的是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");  
}  
}  
 由于这些写得有点匆忙,所以代码比较多,解释比较少 
 不过,思路还是蛮清晰的。 
 就是分解后台传过来的字符串,然后用数组放起来,放在mc里 
 其他的就是一些判断了 
 我最近比较忙,两个星期内还不能继续这做个,希望大家有什么问题说了一下 
 我会尽量回复大家,希望这个对一些朋友有帮助 
 再过一段时间我也会把我做的那个flash + servlet + javaBean贴出来给大家共享 
 现在还有点功能待完善 
  • 上一篇教程:
  • 下一篇教程:
  • ::版权和投稿说明::
    • 任何媒体、网站或个人转载、链接、转贴或以其他方式复制发表本站文章,在使用时务必注明“稿件来源:图酷”及“www.tucoo.com”字样,多谢。
    • 本站已注明“来源”的文章均为转载稿,本站转载出于传递更多信息之目的。如本站转载稿涉及版权等问题,请来信与本站联系。
    • 如果您有自己原创的作品,请向我们投稿哦!您可以通过Email:gogocat@21cn.com投出自己的作品,赶快行动吧!
    • 如果觉得我们的资源有用,请推荐给朋友,谢谢!
    ::相关教程::
    《银河动画》鼠绘教程 (2)
    《银河动画》鼠绘教程 (1)
    星星跟我走
    模拟机械波动画制作教程
    实例教学--蜻蜓菜单
    Flash绘精致矢量图——逼真土豆
    Flash8绘制秋之落叶
    FLASH简单制作科技之光
     
    网友评论:(评论内容只代表网友观点,与本站立场无关!) 发表评论