2013-03-28 3 views
-2

함수 안에 배열로 채워진 배열을 다른 배열에 반환하려고하므로 배열 내부의 값을 슬라이드 쇼에 사용할 수 있습니다.함수에서 반환 한 배열을 JavaScript의 다른 배열로 복사하는 방법은 무엇입니까?

내 코드는 다음과 같습니다

 var flag = 0 
    var slideimages = new Array() 
    slideimages = readfile() 

    function readfile(){ 
    //read data into array x 
    flag =1 
    return x 
    } 

    if(flag == 1){ 
    //execute slideshow functions 
    } 

    //slideshow functions definitions (for timeout n picture index etc) 
    //using slideimages[index] to choose pic 

사람이 여기 나 좀 도와 주 시겠어요?

내 슬라이드 쇼가 실행되고 있지 않습니다, 나는 값이 slideimages []에 복사지고 있지 않기 때문에 그것의 추측하고있어

편집 :

<html><head></head><body> 
    <div id="col1"> 
       <img id="img_frame" class="lazy-img" name="slide1"> 
      </div> 
      <div id="col2"> 
       <img id="img_frame" class="lazy-img" name="slide2"> 
      </div> 
      <div id="col3"> 
       <img id="img_frame" class="lazy-img" name="slide3"> 
      </div> 
      <div id="col4"> 
       <img id="img_frame" class="lazy-img" name="slide4"> 
      </div> 
      <div id="col5"> 
       <img id="img_frame" class="lazy-img" name="slide5"> 
      </div>  
    <script language="JavaScript1.1"> 
       function getImages() { 
        var slideimages = new Array(); 
        slideimages = readfile(); 
        if(slideimages){ 
         slideit1() 
         slideit2() 
         slideit3() 
         slideit4() 
         slideit5() 
        } 

       } 

       function readfile(){ 
        var allText =[]; 
        var Lines = []; 
        var txtFile = new XMLHttpRequest(); 
        txtFile.open("GET", "urls.txt", true); 
        allText = txtFile.responseText; 
        txtFile.onreadystatechange = function() 
        { 
         if (txtFile.readyState == 4 && txtFile.status == 200) 
         {// Makes sure it's found the file. 
          allText = txtFile.responseText; 
          Lines = allText.split(/\r\n|\n/); 
         } 
         else { 
          //alert("Didn't work"); 
         } 
        } 
        txtFile.send(null) 
        return Lines 
       } 
       var slideshowspeed1=3000 
       var slideshowspeed2=27000 
       var slideshowspeed3=70000 
       var slideshowspeed4=11000 
       var slideshowspeed5=50000 

       var whichimage1=0 
       var whichimage2=100 
       var whichimage3=300 
       var whichimage4=500 
       var whichimage5=700 



       function slideit1(){ 
        if (!document.images) 
         return 
        document.images.slide1.src=slideimages[whichimage1] 
        if (whichimage1<slideimages.length-1) 
         whichimage1++ 
        else 
         whichimage1=0 
        setTimeout("slideit1()",slideshowspeed1)}//slideit1() 


       function slideit2(){ 
        if (!document.images) 
         return 
        document.images.slide2.src=slideimages[whichimage2] 
        if (whichimage2<slideimages.length-1) 
        whichimage2++ 
        else 
         whichimage2=0 
        setTimeout("slideit2()",slideshowspeed2)}//slideit2() 

       function slideit3(){ 
        if (!document.images) 
         return 
        document.images.slide3.src=slideimages[whichimage3] 
        if (whichimage3<slideimages.length-1) 
        whichimage3++ 
        else 
         whichimage3=0 
        setTimeout("slideit3()",slideshowspeed3)}//slideit3() 

       function slideit4(){ 
        if (!document.images) 
         return 
        document.images.slide4.src=slideimages[whichimage4] 
        if (whichimage4<slideimages.length-1) 
        whichimage4++ 
        else 
         whichimage4=0 
        setTimeout("slideit4()",slideshowspeed4)}//slideit4() 

       function slideit5(){ 
        if (!document.images) 
         return 
        document.images.slide5.src=slideimages[whichimage5] 
        if (whichimage5<slideimages.length-1) 
        whichimage5++ 
        else 
         whichimage5=0 
        setTimeout("slideit5()",slideshowspeed5)}//slideit5() 

      </script> 
</body> 
</html> 
: 여기

내 코드입니다

내 웹 페이지에있는 div가 이미지를 표시하지 않는 이유를 모르겠습니다 (URL은 urls.txt 파일에 있음). 나는 이것에 정말로 새로운 것이다.

답변

0

그런 기능을 중첩해서는 안됩니다. readfile을 호출 할 때마다 새로운 readfile 함수 객체가 생성됩니다.이 객체는 잘못된 디자인이며 조심하지 않으면 시스템을 망칠 수 있습니다. 또한 "깃발 (flag)"이 훨씬 더 깨끗한 방법으로 성취하려고하는 것과 동일한 것을 실제로 달성 할 수 있습니다. 다음을 시도하십시오.

function getImages() { 
    var slideimages = readfile(); 
    if (slideimages) { 
    // execute slideshow functions 
}, 

function readfile() { 
    // read data into array x 
    return x; 
} 

"판독 값을 배열 x에"구현하는 방법과 관련된 문제 일 수 있습니다. 여전히 문제가 해결되지 않으면 나머지 코드를 게시하십시오.

+0

나머지 코드는 게시했습니다. 너는 내가 뭘 잘못하고 있는지 말할 수 있는지 한번 살펴봐 줄래? – Kitty1911

관련 문제