2016-12-06 4 views
0

Zunächst verstehe ich, dass dieser spezielle Fehler/Frage wurde mehrmals gefragt, aber ich kann keine hilfreiche Antwort für meinen spezifischen Code finden.Adobe Flash Error # 1009

Ich bin mit Adobe Flash Professional CC 2015 und ich mache eine einfache Foto-Galerie mit Actionscript 3.

Ich erhalte den Fehler „Typeerror: Error # 1009: Kann nicht auf eine Eigenschaft oder Methode eines null zugreifen . Objektverweis auf photo_gallery/nextPics()“

Mein Klassencode ist wie folgt:

package 
     { 
    import flash.display.MovieClip; 
    import fl.containers.UILoader; 
    import flash.events.MouseEvent; 
    public class photoGallery extends MovieClip 
    { 

     private var mainPicture:UILoader = new UILoader(); 

     private var spacing:int = 20; 
     private var thumbSize:int = 80; 
     private var mainPictureSize:int = 400; 
     private var numberOfThumbnails:int = 8; 

     private var picNames:Array = new Array(); 

     private var Down_Button:Down = new Down(); 
     private var Up_Button:Up = new Up(); 
     private var firstPicture:int = 0; 

     public function photoGallery() 
     { 
      // constructor code 
      initialize(); 
     } 
     private function initialize():void 
     { 
      addChild(Down_Button); 
      Down_Button.x = 550; 
      Down_Button.y = 90; 
      Down_Button.addEventListener(MouseEvent.CLICK, nextPics); 
      addChild(Up_Button); 
      Up_Button.x = 650; 
      Up_Button.y = 200; 
      Up_Button.addEventListener(MouseEvent.CLICK, prevPics); 
      picNames.push("image2.jpeg"); 
      picNames.push("image6.jpeg"); 
      picNames.push("image3.jpeg"); 
      picNames.push("image1.jpeg"); 
      picNames.push("image4.jpeg"); 
      picNames.push("image6.jpeg"); 
      picNames.push("image6.jpeg"); 
      picNames.push("image3.jpeg"); 
      picNames.push("image1.jpeg"); 
      addChild(mainPicture); 
      mainPicture.source = picNames[0]; 
      mainPicture.width = mainPictureSize; 
      mainPicture.height = mainPictureSize; 
      mainPicture.x = 0; 
      mainPicture.y = 0; 
      for (var i:int = 0; i < numberOfThumbnails; i++) 
      { 
       //Make a thumbnail 
       var thumbnail:UILoader = new UILoader(); 
       addChild(thumbnail); 
       thumbnail.width = thumbSize; 
       thumbnail.height = thumbSize; 
       thumbnail.x = mainPicture.width + spacing; 
       thumbnail.y = i * (thumbSize + spacing); 
       thumbnail.source = picNames[i + firstPicture]; 
       thumbnail.addEventListener(MouseEvent.CLICK, loadPic); 
       thumbnail.name = "thumbnail" + i; 
      } 

     } 
     private function loadPic(evt:MouseEvent):void 
     { 
      mainPicture.source = evt.currentTarget.source; 
     } 
     private function nextPics(evt:MouseEvent):void 
      { 
      firstPicture += numberOfThumbnails; 
      for (var i:int = 0; i < numberOfThumbnails; i++) 
      { 
       trace(getChildByName("thumbnail" + i)); 
       var currentThumbnail:Object = getChildByName("thumbnail" + i); 
       currentThumbnail.source = picNames[i + firstPicture]; 
      } 
      } 

    } 

} 

Alle Symbole auf der Bühne haben Up_Button und Down_Button Instanzen.

Ich entschuldige mich, wenn das ist unglaublich vage, ich bin neu und nicht sehr vertraut mit Flash noch.

Vielen Dank!

+0

Wenn die UILoader-Quelle mit null gesetzt wird, wird ein Fehler ausgegeben? – Pan

Antwort

0

Die Fehlermeldung Tell, in der nextPics-Methode versuchen Sie, auf Methode oder Eigenschaft auf etwas zuzugreifen, ist nicht vorhanden.

Überprüfen Sie, ob getChildByName("thumbnail" + i) oder picNames vor der Verwendung vorhanden sind.

trace(getChildByName("thumbnail" + i)); oder trace(picNames); gibt Ihnen etwas zurück?