function downimg(){
var imgar = new Array();
for(i=1;i++;i<=3){
imgar["'img'+i"] = new Image(960,380);
imgar["'img'+i"].src = "images/eightimg/eight_"+i+".gif"; 
}
}
function eight(){
divid = document.getElementById('eigth');
i = 1;
function bimg(){
if(i<=8){
divid.style.backgroundImage = 'url("images/eightimg/eight_'+i+'.gif")';
i++
}else{
i = 1;
}  
 }
 imgb = setInterval(bimg,1000);
}
我怎么才能将函数downimg中的imgar数组传递到函数eight中呢?设置一个全局变量我试了也没有成功。

解决方案 »

  1.   

    传数组很麻烦的,可以的话在eight函数中跑downing函数
      

  2.   

    1.把imgar变成全局变量,肯定能成功,毋庸置疑。
    2.downimg(){}中使用eight(imgar)。
      

  3.   


    function downimg(){
        var imgar = new Array();
        for(i=1;i++;i<=3){
            imgar["'img'+i"] = new Image(960,380);
            imgar["'img'+i"].src = "images/eightimg/eight_"+i+".gif"; 
            }
    eight(downimg);//这里调用eight
        }
    function eight(downimgArray){//downimgArray就是数组参数
        divid = document.getElementById('eigth');
        i = 1;
        function bimg(){
            if(i<=8){
                divid.style.backgroundImage = 'url("images/eightimg/eight_'+i+'.gif")';
                i++
                }else{
                    i = 1;
                    }  
         }
             imgb = setInterval(bimg,1000);
        }
    //另一种方法,定义全局数组变量
      

  4.   

    要看你这两个函数的调用关系是怎么样的。
    设置全局变量肯定可以,前提是先执行downing()再执行eight()
      

  5.   

    for(i=1;i++;i<=3)
    这个循环能终止么?
      

  6.   

    这段代码有很大问题,上个月有人问过↑↑。跑起来后CPU↑↑↑↑↑↑主要这里imgar["'img'+i"] = new Image(960,380);
      

  7.   

    啊,这都记得,上次也是我问的,这次又有疑问了
    var imgar = [];
    function eightimg(){
    var i = 1;
    for(i=1;i<9;i++){
      imgar[i] = new Image();
      imgar[i].src = "images/eightimg/eight_"+i+".gif"; 
      imgar[i].onload=function(){
    this.width = 960;
    this.height =380;
       }
     }
    }
    eightimg();
    function bimg(){
    //alert(imgr[1]);
    var imgr = window.imgar;
    divid = document.getElementById('eight');
    var i = 1;
    if(i<=8){
    divid.style.backgroundImage = 'url("'+imgar[i].src+'")';
    i++
    }
    if(i>8){
    i=1;
    }  
     }
        bimg();
    我想实现图片的预加载,这样能达到效果么?我都是在自己电脑上试的,不知道这样的思路对不对?
      

  8.   

    晚上熬夜,白天迷糊,老是打错代码,上面的divid.style.backgroundImage = 'url("'+imgar[i].src+'")'; 
    是divid.style.backgroundImage = 'url("'+imgr[i].src+'")'; 
      

  9.   

    原来就是你问的啊,哈~~我没去查看,只是印象中记得:)
    预加载就是7楼上半段那样的呀,new Image()本身就是预加载的意思。
    你已经var imgar = []成全局变量了,为什么还var imgr = window.imgar; 呢?
    直接divid.style.backgroundImage = 'url("'+imgar[i].src+'")';就好了,
    不用divid.style.backgroundImage = 'url("'+imgr[i].src+'")';了
    7楼歪打正着,哈哈
      

  10.   

    我怕函数里面没有办法直接使用全局变量就var imgr = window.imgar;了,嘿嘿,谢谢了。
      

  11.   

    我怕函数里面没有办法直接使用全局变量就var imgr = window.imgar;了,嘿嘿,谢谢了。