+ -
当前位置:首页 → 问答吧 → FLASH+XML加载图片并分页显示的问题

FLASH+XML加载图片并分页显示的问题

时间:2011-02-12

来源:互联网

需要做一个flash+xml的图片展示,高手能不能帮忙看看怎么样可以实现鼠标移到小图上能显示大图

flash as源码如下
var pageShowNum:Number = 10;  //每页显示图片数量
var page_row:Number = 5;  //每行显示个数
var x_space:Number = 180;  //设定列间距
var y_space:Number = 200;  //设定行间距
var x_begin:Number = 80; //设定mc循环的起始位置,对应第一个mc的x坐标
var y_begin:Number = 100; //设定mc循环的起始位置,对应第一个mc的y坐标
var showpicwidth:Number = 108;  //图片显示长度
var showpicheight:Number = 142;  //图片显示高度

//定义变量
var zero_X:Number = x_begin;
var zero_Y:Number = y_begin;
var currentPageNum = 1; //当前页数

var arrImgList:Array = new Array();

//显示图片列表
function ShowImgList(){
       if(arrImgList.length>0){
              for(var i=0;i<pageShowNum;i++){
                     if(i<arrImgList.length-(currentPageNum-1)*pageShowNum){
                            attachMovie("picPane","x"+i,i);
                            zero = eval("x"+i);
                            zero._x = zero_X;
                            zero._y = zero_Y;
                            zero_X += x_space;
                            if(((i+1)%page_row) == 0){
                              zero_X = x_begin;
                              zero_Y += y_space;
                            }
                           
                            //加载产品图片并设置显示大小
                            var my_mc = new MovieClipLoader();
                            myListener = new Object();
                            myListener.onLoadInit = function(target_mc){
                        
                                   target_mc.removeListener(myListener);
                                   var target_mc_x = 5;//图片的相对位移x
                                   var target_mc_y = 4;//图片的相对位移y
                                   picwidth = getProperty(target_mc,_width);
                                   picheight= getProperty(target_mc,_height);
                                   
                                   var k1=showpicwidth/picwidth;
                                   var k2=showpicheight/picheight;
                                   var k=1;
                                   if(k1<1||k2<1){
                                          k1<k2?k=k1:k=k2;
                                   }else{
                                          k=1;      
                                   }      
                                   
                                   target_mc._xscale=target_mc._yscale=k*100;
                                   
                                   target_mc._x = (showpicwidth-target_mc._width)/ 2+target_mc_x;
                                   target_mc._y = (showpicheight-target_mc._height)/ 2+target_mc_y;
                              
                            }
                            my_mc.addListener(myListener);
                            my_mc.loadClip(arrImgList[(currentPageNum-1)*pageShowNum+i].attributes.src,zero.pic_mc);
                           
                            zero.txtImgName = arrImgList[(currentPageNum-1)*pageShowNum+i].attributes.name; //图片名称
                           
                            zero.onRelease = zeroRelease; //单击事件
                     }
              }
              CheckButtonVisible();
       }
}

//单击图片事件
function zeroRelease(){
       trace("你当前点击的是;"+this.txtImgName);
      
       //这里你可以加载其它事件
      
}

//删除原有的mc
function RemoveOldMC(){
       for(var i=0;i<pageShowNum;i++){
              removeMovieClip("x"+i);
       }
       //重新获取初始坐标
       zero_X = x_begin;
       zero_Y = y_begin;
}

//检测翻页按钮的合法性
function CheckButtonVisible(){
       if(arrImgList.length <= pageShowNum){
              btn_prev._visible = false;
              btn_next._visible = false;
       }else{
              if(currentPageNum==1){ //首页
                     btn_prev._visible = false;
                     btn_next._visible = true;
              }
              if(currentPageNum == Math.ceil(arrImgList.length/pageShowNum)){ //尾页
                     btn_prev._visible = true;
                     btn_next._visible = false;
              }
       }
}

//上一页按钮事件
btn_prev.onPress = function(){
       RemoveOldMC();
       currentPageNum--;
       ShowImgList();
}

//下一页按钮事件
btn_next.onPress = function(){
       RemoveOldMC();
       currentPageNum++;
       ShowImgList();
}

//加载图片XML
function LoadMagazineListXML(){
       var magazine_xml:XML = new XML();
       magazine_xml.ignoreWhite = true;
       magazine_xml.onLoad = function(success){
              if(success){
                     for(var i=0;i<magazine_xml.firstChild.childNodes.length;i++){
                            arrImgList.push(magazine_xml.firstChild.childNodes[i]);
                     }
                     ShowImgList();
              }else{
                     trace("加载图片列表失败!");
              }
       }
       magazine_xml.load("ImageList.xml");
}

LoadMagazineListXML();

xml原码如下:

<?xml version="1.0"?>
<root>
              <img src="images/1.jpg" name="图片1"></img>  
              <img src="images/2.jpg" name="图片2"></img>
              <img src="images/3.jpg" name="图片3"></img>
              <img src="images/4.jpg" name="图片4"></img>
              <img src="images/5.jpg" name="图片5"></img>
              <img src="images/6.jpg" name="图片6"></img>
              <img src="images/7.jpg" name="图片7"></img>
              <img src="images/8.jpg" name="图片8"></img>
              <img src="images/9.jpg" name="图片9"></img>
              <img src="images/10.jpg" name="图片10"></img>
              <img src="images/11.jpg" name="图片11"></img>
              <img src="images/12.jpg" name="图片12"></img>
</root>

源码:http://www.youxianwuxian.com/123.rar

作者: changjiecj   发布时间: 2011-02-12

 XML中添加一个属性记录大图路径
然后在onRollOver时显示到大图容器中

作者: flash023   发布时间: 2011-02-12

flash我一窍不通,请版主说清楚点谢谢

作者: changjiecj   发布时间: 2011-02-12


其实我已经猜到楼主会这样说

如果需要上门服务,修改完之后送货上门
可以耐心等待,对此有兴趣,有时间,无义务的朋友修改后上传,楼主仅需耐心。
也可以上供求区请人。

作者: flash023   发布时间: 2011-02-12

贴了一大段代码,问的问题却跟贴出的代码没太大关系。
。。。
我也猜到了。

作者: cjyyj   发布时间: 2011-02-12

...........

作者: HBrO   发布时间: 2011-02-12