论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

学习xml+Moviecliploader动态载入图片方法(四)

文章类别:Flash AS | 发表日期:2009-8-8 17:55:10

学习xml+Moviecliploader动态载入图片方法(四)

第四部分
目标:测试吧
现在给出我的全部代码:
时间轴部分:
var id=0;
var pagesize=8;
var pageno=1;

var myML=new MovieClipLoader();
var myobj=new Object();
myML.addListener(myobj);
myobj.onLoadComplete=function(){
       trace("complete");
       if(id<cnums+pagesize*(pageno-1)){
              id++;
              trace("当前id为"+id)
              loadpic(id);
       }//if(id<cnums+pagesize*(pageno-1))在该语句上,起初我把pageno-1写成了pageNo-1,而上一个trace语句能执行,我发现是该条件没通过,后来才检查到是写错了,所以说写代码要仔细
pagetotal=(nums%pagesize==0)?nums/pagesize:Math.floor(nums/pagesize)+1;
_root.count="当前页数为第"+pageno+"页"+"总页数"+ pagetotal ;
       }
myobj.onLoadInit=function(tar){
       tar._width=85;
       tar._height=53;
       tid=id-1;
       cid=tid-pagesize*(pageno-1);
       _root["loader"+cid].loading_mc._visible=false;
       _root["loader"+cid].bg_mc._visible=false;
       _root["loader"+cid].btn_mc.pid=tid;
       _root["loader"+cid].btn_mc.showimg_url=id-1;//注意,这里的_root不能改为this,因为他包含在onloadinit事件中,里面的this是以myobj为基础的,可以在其中用trace(this),显示[object object]
       _root["loader"+cid].btn_mc.onRelease=function(){
              this.show_url=mylist[this.showimg_url].attributes.path;
              trace(this.show_url)
              ttid=this.pid;
             
       
        myMCL.loadClip(this.show_url,"showimg")
              trace(this.show_url)
             
             
       }
}

var myMCL=new MovieClipLoader()//本来我不想再重新定义个监听对象,第一次载入还可以,但当Press舞台上的任意一个按钮,loader容器中的图片由于会执行myobj.onloadinit事件,但他不是执行第一个,导致图片载入不正常
var myobj2=new Object()
myMCL.addListener(myobj2)
myobj2.onLoadInit=function(tar){
                     //imgw=470
                     ming=imgurl
                     miaoshu=imgurl
                     imgoldw=tar._width
                     imgoldh=tar._height
                     w=imgoldw+"pix"
                     h=imgoldh+"pix"
                     trace("w="+imgoldw+"h="+imgoldh)//同一图片URL,即对同一图片press之后,虽然他们是一个url,但每press一 下,其值都会累加
                     /*bili=imgoldh/imgoldw
                     imgneww=imgw
                     imgnewh=imgw*bili
                  _root.showimg.onEnterFrame=function(){
                            showimg._width+=(imgneww-showimg._width)/2
                            showimg._height+=(imgnewh-showimg._height)/2
               _root.onEnterFrame=function(){
                        showimg._width+=(imgneww-showimg._width)/2
                        showimg._height+=(imgnewh-showimg._height)/2
                        此种状态下,上面的宽高只能加一次,而不能缓冲到imgneww和imgnewh
                    
                           
                     }*/
                     url=mylist[id].firstChild;
                     lianjie.onPress=function(){
                            getURL(url,"_blank")
                     }
                     changeshow()//不要写在_root.showimg.onEnterFrame=function()内部
                    
              }
             
myobj2.onLoadProgress=function(target_mc,loadedBytes,totalBytes){
       loaded=loadedBytes
       loadtotal=totalBytes
       daxiao=int(loaded/1024)+"Kb/"+int(loadtotal/1024)+"Kb"
       baifenbi=int(loaded/loadtotal)
       jindu=baifenbi
       load_mc.load.loading._xscale=baifenbi*100
if(baifenbi=1){
       load_mc.gotoAndPlay(10)
      
}
       }

      
var myxml=new XML()
myxml.ignoreWhite=true;
myxml.onLoad=function(suc){
       trace("xml loaded");
       if(suc){
       mylist=myxml.firstChild.childNodes;
       nums=mylist.length;
       loadmc();
       loadfirstpic();

       }
       }
var lei=1;
myxml.load("list"+lei+".xml");
for(var i=1;i<=3;i++){
       _root["lei"+i].lei=i;}

function loadmc(){
       if(pagesize*pageno>nums){
              cnums=nums%pagesize;}
              else{
              cnums=pagesize}
              trace("mc shumu="+cnums)
for(var j=0;j<pagesize;j++){
       removeMovieClip(_root["loader"+j])
}
for(var i=0;i<cnums;i++){
_root.attachMovie("loadmc","loader"+i,100+i);
trace(_root["loader"+i]._name)
_root["loader"+i]._x=90*(i%8);//(i%5)中的括号千万不能省略,否则坐标的错误会导致一些MC显示不出来
_root["loader"+i]._y=350+0*Math.floor(i/5);
}
}


function loadfirstpic(){
       imgurl=mylist[id].attributes.path;
       myML.loadClip(imgurl,_root.loader0.loadpic_mc)
       myMCL.loadClip(imgurl,"showimg")
}

function loadpic(id){
imgurl=mylist[id].attributes.path;
lid=id-pagesize*(pageno-1);
myML.loadClip(imgurl,_root["loader"+lid].loadpic_mc)
}


      
function changeshow(){
              showimg._x=0
           showimg._y=0
              _root.onEnterFrame=function(){
              left=0
              right=470
              up=0
              down=300
              if(_root._xmouse>left&&_root._xmouse<right&&_root._ymouse>up&&_root._ymouse<down){
              mousex=_xmouse
              mousey=_ymouse
              showimg._x-=(_root._xmouse-right/2)/10
              showimg._y-=(_root._ymouse-down/2)/10
              if(showimg._x>=left){
                     showimg._x=left
                     }
              if(showimg._y>=up){
                     showimg._y=up
              }
              if(showimg._x<right-showimg._width){
                     showimg._x=right-showimg._width
                     if(showimg._x>=left){
                     showimg._x=left
                     }//加上这个判断很必要,因为有的图片会很窄,right-showimg._width成正,坐标会发生非正常移动
                     }
              if(showimg._y<down-showimg._height){
                     showimg._y=down-showimg._height
                     if(showimg._y>=up){
                     showimg._y=up
              }
              }
             
              }
             
              }//end enterframe
       }

fir_btn.onRelease=function(){
       id=0;
       pageno=1;
       loadmc();
       imgurl=mylist[id].attributes.path;
       myML.loadClip(imgurl,_root["loader0"].loadpic_mc)
       myMCL.loadClip(imgurl,"showimg")
}
last_btn.onRelease=function(){
       trace("last");
       pageno=(nums%pagesize==0)?nums/pagesize:Math.floor(nums/pagesize)+1;//判断总页数,注意pagesize==0千万不要写成pagesize=0(“=”是赋值运算符,左边必须是变量或属性)
       id=pagesize*(pageno-1);//这句和前一句不能调换,否则id值的计算会以pageno=1,pagesize=20的初值来计算得0,然后i++得1,你可以调换一下看看,他只会TRACE出“complete  当前id为1”
       loadmc();
       imgurl=mylist[id].attributes.path;
       myML.loadClip(imgurl,_root["loader0"].loadpic_mc)
       myMCL.loadClip(imgurl,"showimg")
}
pre_btn.onRelease=function(){
       pageno--;
       if(pageno<=0){pageno=1
       }
       id=pagesize*(pageno-1);
       loadmc();
       imgurl=mylist[id].attributes.path;
       myML.loadClip(imgurl,_root["loader0"].loadpic_mc)
       myMCL.loadClip(imgurl,"showimg")
}
next_btn.onRelease=function(){
       trace("release next");
      
       pageno++;
       var yeshu=(nums%pagesize==0)?nums/pagesizeMath.floor(nums/pagesize)+1);
       if(pageno>=yeshu){
              pageno=yeshu;
       }
       trace("总页数="+yeshu)
       id=pagesize*(pageno-1);
    loadmc();
       imgurl=mylist[id].attributes.path;
       myML.loadClip(imgurl,_root["loader0"].loadpic_mc)
       myMCL.loadClip(imgurl,"showimg")
}

btn.onRollOver = function(){      //鼠标移动btn上时执行函数
       onEnterFrame = function(){    
              shuom.scroll++;  //动态文本向上一行一行的移动
}
}
btn.onRollOut = function(){    //鼠标移出btn
       delete onEnterFrame;   //文本滚动停止
}

              //2008.5.18   5:13测试完工  
              //分类功能测试于7:37完成     平沙
MC部分:
lei1,lei2,lei3加入同样语句:
on (release) {
_root.id=0;
_root.pageno=1;//将id,pageno归零,否则单击转入另一类图片时,他会延续原来的id,pageno载入图片
_root.myxml.load("list"+this.lei+".xml");//myxml在根时间轴,所以要引用它,前面必须加路径_root
}

视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058