2016-12-06 4 views
0

Прежде всего, я понимаю, что эта конкретная ошибка/вопрос задавалась несколько раз, однако я не могу найти полезный ответ для моего конкретного кода.Ошибка Adobe Flash # 1009

Я использую Adobe Flash Professional CC 2015 и я сделать простую галерею фотографий с помощью ActionScript 3.

Я получаю ошибку «TypeError: Error # 1009: Не удается получить доступ к свойству или методу нулевой . объект ссылки на photo_Gallery/nextPics()»

Мой класс код выглядит следующим образом:

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]; 
      } 
      } 

    } 

} 

Все символы на сцене имеют Up_Button и Down_Button экземпляров.

Прошу прощения, если это невероятно расплывчато, я новичок и не очень хорошо знаком с Flash.

Спасибо!

+0

При установке источника UILoader с нулевым значением, будет ли это ошибка? – Pan

ответ

0

Сообщение об ошибке сообщает, что в методе nextPics вы пытаетесь получить доступ к методу или свойству на что-то не существует.

Проверьте, есть ли getChildByName("thumbnail" + i) или picNames есть перед тем, как использовать.

trace(getChildByName("thumbnail" + i)); или trace(picNames); вернули вам что-то?

Смежные вопросы