2010-03-31 69 views
0

我有一個畫廊,它會加載之前的圖像加載圖像,所以每次'我'將+1,以便它可以移動到下一個圖像。此代碼在我的其他文件上工作正常,但我不知道爲什麼它不適用於當前文件。我整數不是+1的第一次

通常情況下,如果我跟蹤「我」正確的將是

0,1,2,3,4,5,6... etc 

上添加至極限,但這個文件的「I」重複第一位數字的兩倍,只有它繼續增加

0,0,1,2,3,4,5,6...etc 

該代碼與我正在使用的其他文件完全相同,但我不知道爲什麼它在這裏不起作用。代碼似乎沒有任何問題。無論如何,我可以解決這種情況?

private var i:uint=0; 

private function loadItem():void { 

     if (i<myXMLList.length()) { 
      loadedPic=myXMLList[i].thumbnails; 

      galleryLoader = new Loader(); 
      galleryLoader.load(new URLRequest(loadedPic)); 
      galleryLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,picLoaded); 
     } else { 
      adjustImage(); 
     } 
    } 

    private function picLoaded(event:Event):void { 
     var bmp=new Bitmap(event.target.content.bitmapData); 
     bmp.smoothing=true; 
     bmpArray.push(bmp); 
     imagesArray[i].addChild(bmp); 

     i++; 
     loadItem(); 
    } 
+0

這很明顯。你從哪裏得到那份清單,即痕跡在哪裏? – 2010-03-31 16:43:16

+0

我可以問問哪種功能在先?如果您不確定這是否添加跟蹤(「function functionname run」);到功能 – 2010-03-31 16:55:45

回答

1

該代碼看起來很好,但確實很難分辨出可能導致這種情況的原因。我可以給你的最好建議是設置一些斷點;例如在將事件偵聽器添加到galleryLoader對象的位置設置一個,然後運行Flash的調試器。通過轉到調試>調試電影來運行它。

調試器將停止在該行,並且您將能夠在變量窗口中查看您的i變量,因爲您逐行執行代碼。您按步驟按中的按鈕,在調試控制檯窗口內。我已經把圖像下面顯示調試器的特定窗口(即你不會在Flash中其他任何時間見):

alt text http://rookery9.aviary.com.s3.amazonaws.com/3518000/3518019_1ab3_625x625.jpg

我認爲,這樣做(如果你還沒有準備好嘗試,那是)你應該很快看到出了什麼問題。無論如何希望它有幫助。

debu

+0

的基本上它根本不顯示任何錯誤:( – Hwang 2010-03-31 14:26:51

+0

是的,這就是爲什麼你應該使用調試器。你的程序沒有做任何違法的事情,所以說沒有錯誤,所以你只需要跟着代碼的執行,看看你的* i *變量在什麼時候發生了什麼,如果你願意,你可以在某處上傳.fla,我會看看。 – debu 2010-03-31 18:50:49

0

我終於找到了最新的問題。

public function grid():void { 
     addEventListener(Event.ADDED_TO_STAGE, add2Stage); 
    } 

    private function add2Stage(event:Event):void { 
     myLoader=new URLLoader(); 
     myLoader.load(new URLRequest(galleryXML)); 
     myLoader.addEventListener(Event.COMPLETE,processXML); 
    } 

因爲我正在使用添加功能的階段。我刪除add2stage函數後,一切都很好。但爲什麼它會在第一次影響和運行該功能兩次?我只是將它添加到舞臺上以獲得舞臺寬度。

相關問題