script


      
      <mx:Script>
          <![CDATA[
  
     // Libraries used
              import mx.events.ListEvent;
  
     private function initSlideshow():void {
               if (arrImages.length > 0) {
                lblFooter.text = "© Bas van Dijk - 2008";   
                lblTitle.text = "Flex 3 gallery test";
                loadImage(0);
                lstThumbnails.selectedIndex = 0;
               }
               checkScroll();
              }
              
     // Fires when the scroll next button of the thumbnaillist is clicked
     private function cmdScrollNext_click():void {
               
               var newPos:int = lstThumbnails.horizontalScrollPosition + 1;
               if (newPos <= lstThumbnails.maxHorizontalScrollPosition) {
                lstThumbnails.horizontalScrollPosition = newPos;
               }
               
               checkScroll();
              }
              
     // Fires when the scroll previous button of the thumbnaillist is clicked
     private function cmdScrollPrev_click():void {
               
               var newPos:int = lstThumbnails.horizontalScrollPosition - 1;
               if (newPos >= 0) {
                lstThumbnails.horizontalScrollPosition = newPos;
               }
               
               checkScroll();
              }
              
     // Check the scrollposition of the list and hides the previous and next buttons if neccesary
     private function checkScroll():void {
               
      // Check if the scroll position is at the start position of the list
      // if so hide the scroll previous button
               if (lstThumbnails.horizontalScrollPosition == 0)
               {
                cmdScrollPrev.visible = false;
               } else {           
                cmdScrollPrev.visible = true;
               }
               
      // Check if the scroll position is at the max position of the list
      // if so hide the scroll next button
               if (lstThumbnails.horizontalScrollPosition == lstThumbnails.maxHorizontalScrollPosition) {
                cmdScrollNext.visible = false;
               } else {
                cmdScrollNext.visible = true; 
                
               }
              }
              
     // Fires when the user clicks on a thumbnail
       private function lstThumbnails_itemClick(evt:ListEvent):void {
                  imgMain.source = evt.itemRenderer.data.src;
                  lblImageTitle.text = evt.itemRenderer.data.lbl;
              }
              
              // Loads a specific image
              private function loadImage(imageNumber:int):void {
               imgMain.source = arrImages[imageNumber].src;
               lblImageTitle.text = arrImages[imageNumber].lbl;
              }
              
    // Fired then the user clicks on an image for the next picture
     private function imgMain_click():void {
               if (lstThumbnails.selectedIndex < arrImages.length) {
                lstThumbnails.selectedIndex += 1;
                lstThumbnails.scrollToIndex(lstThumbnails.selectedIndex);
                loadImage(lstThumbnails.selectedIndex);
                checkScroll(); 
               }
              }
  
          ]]>
      </mx:Script>