- 在线时间
- 1948 小时
- 专家
- 0
- UID
- 182221
- 注册时间
- 2005-6-4
- 帖子
- 1781
- 精华
- 1
- 积分
- 7945
- 离线
- 1 天
专长: PHP,MySQL,ActionScript
- 帖子
- 1781
- 体力
- 7608
- 威望
- 65
|
发表于 2006-8-23 16:34:14
|显示全部楼层
添加了分页效果
查看效果
源文件也已经更新。
在做分页的时候,遇到了一些问题,包括变量的传递,程序的流程等等,确实有些头大,昨天晚上躺在吊床上,还想了一段时间呢,嘿嘿,不过总算是出来了。谢谢大家的支持!
---------------------------------------------------
修正了翻页后链接实效的问题,不好意思了,:)
源文件 have already updated。
---------------------------------------------------
本以为网上这样的教程多的是,随便一抓就是一大把,结果不甚理想,不过也看到了一些有用的文章。
还是自己动手丰衣足食吧,我们知道MovieClipLoader载入单图,还是比较简单的,但如果是多图呢,如何建立监听?如何在一副图片加载完后load下一张图片?如何与XML结合?
让我们一个一个来,首先是监听的问题,这么多图,不能新建n个object,然后分别对这几个object监听,效率太低,所以只能建立一个监听,余下的任务就是如何实现多图载入了。
基本思路:
先给id赋值1,然后通过判断id与总图片数的大小,来决定是否加载下一张图片就像这样:
- myObj.onLoadComplete = function() {
- if (id<=nums) {//一个图片加载完成后,判断id与nums的值,如果小于nums继续加载
- id++;
- loadpic(id);
- }
- };
复制代码
然后在loadpic(id)函数里执行
- myCL.loadClip(imgurl, loadpic_mc);
复制代码
就可以继续加载了。
最后是与XML结合的问题,其实也满简单的,当加载完外部xml时,执行相应的函数就行了,就像这样:
- myXML.onLoad = function(suc) {
- if (suc) {
- loadStart();//载入完成后执行loadStart函数
- }
- };
复制代码
基本思路就是这样,贴上源码:
- var id = 1;
- var myXML:XML = new XML();
- myXML.ignoreWhite = true;
- myXML.load("list.xml");//载入xml
- myXML.onLoad = function(suc) {
- if (suc) {
- loadStart();//载入完成后执行loadStart函数
- }
- };
- var myObj:Object = new Object();
- myObj.onLoadComplete = function() {
- if (id<=nums) {//一个图片加载完成后,判断id与nums的值,如果小于nums继续加载
- id++;
- loadpic(id);
- }
- };
- myObj.onLoadInit = function(tar) {//加载完成后,设置图片大小
- tar._width = 85;
- tar._height = 53;
- tid = id-1;
- //将loading和灰色背景设为不可见,并给按钮加上事件
- //这里有个小技巧就是将tid赋予_btn.pid;方便将来调用
- _root["loader"+tid+"_mc"].loading_mc._visible = false;
- _root["loader"+tid+"_mc"].bg1_mc._visible = false;
- _root["loader"+tid+"_mc"]._btn.pid = tid;
- _root["loader"+tid+"_mc"]._btn.onRelease = function() {
- ttid = this.pid;
- url = myList[ttid].childNodes[0];//取得xml文件对应的url
- getURL(url);
- };
- };
- var myCL:MovieClipLoader = new MovieClipLoader();
- function loadStart() {
- myList = myXML.firstChild.childNodes;
- nums = myList.length;//得到图片数
- for (var i = 1; i<=nums; i++) {//复制库里的mc,并将其置于舞台上,分配好各自的坐标
- _root.attachMovie("bg_loader", "loader"+i+"_mc", 100+i);
- _root["loader"+i+"_mc"]._x = (i%5 == 0) ? 450 : (10*(i%5)+100*(i%5-1));
- ty=i%5 == 0 ? (Math.floor(i/5-1)*80) : (Math.floor(i/5)*80);
- _root["loader"+i+"_mc"]._y = 10+ty
- }
- myCL.addListener(myObj);//设置监听
- myCL.loadClip("imgs/small01.jpg", _root.loader1_mc.loadpic_mc);//加载第一副图片
- }
- function loadpic(id) {
- //取得xml文件里相应的图片地址
- imgurl = myList[id-1].attributes.path;
- myCL.loadClip(imgurl, _root["loader"+id+"_mc"].loadpic_mc);
- }
复制代码
[ 本帖最后由 lzyy 于 2007-2-6 11:46 编辑 ] |
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
-
总评分: 威望 + 2
查看全部评分
|