1 Reply Latest reply on Jan 20, 2011 7:12 AM by kglad

    Flash Slideshow Help

    Xavier_3D

      I am trying to create a slideshow from a premade gallery script I found once. The reason for using it was its ease of use. However I have encountered some issues that I really want this slideshow to have.

       

      1. Automatic Change to the next image with a Pause Button.
      2. Also I want to understand how the desc_text instance reads the <Caption> tags in the XML. I intend to have a Heading Option as well, but I can't seem to find a logical answer to do it.

       

      function loadXML(loaded) {
           if (loaded) {
                xmlNode = this.firstChild;
                image = [];
                description = [];
                total = xmlNode.childNodes.length;
                for (i=0; i<total; i++) {
                     image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
                     description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
                }
                firstImage();
           } else {
                content = "file not loaded!";
           }
      }
      xmlData = new XML();
      xmlData.ignoreWhite = true;
      xmlData.onLoad = loadXML;
      xmlData.load("xmldata/advertisements.xml");
      /////////////////////////////////////
      listen = new Object();
      listen.onKeyDown = function() {
           if (Key.getCode() == Key.LEFT) {
                prevImage();
           } else if (Key.getCode() == Key.RIGHT) {
                nextImage();
           }
      };
      Key.addListener(listen);
      previous_btn.onRelease = function() {
           prevImage();
      };
      next_btn.onRelease = function() {
           nextImage();
      };
      /////////////////////////////////////
      p = 0;
      this.onEnterFrame = function() {
           filesize = picture.getBytesTotal();
           picture.forceSmoothing = true;
           loaded = picture.getBytesLoaded();
           preloader._visible = true;
           if (loaded != filesize) {
                preloader.preload_bar._xscale = 100*loaded/filesize;
           } else {
                preloader._visible = false;
                if (picture._alpha<100) {
                     picture._alpha += 10;
                }
           }
      };
      function nextImage() {
           if (p<(total-1)) {
                p++;
                if (loaded == filesize) {
                     picture._alpha = 0;
                     picture.loadMovie(image[p], 1);
                     desc_txt.text = description[p];
                     picture_num();
                }
           }
      }
      function prevImage() {
           if (p>0) {
                p--;
                picture._alpha = 0;
                picture.loadMovie(image[p],1);
                desc_txt.text = description[p];
                picture_num();
           }
      }
      function firstImage() {
           if (loaded == filesize) {
                picture._alpha = 0;
                picture.loadMovie(image[0], 1);
                desc_txt.text = description[0];
                picture_num();
           }
      }
      function picture_num() {
           current_pos = p+1;
           pos_txt.text = current_pos+" / "+total;

        • 1. Re: Flash Slideshow Help
          kglad Adobe Community Professional & MVP

          you can use setInterval() to call nextImage() for your autoadvance.  your pause button would use clearInterval() and you'll probably want to loop so use:

           

          function nextImage() {
               if (p<(total-1)) {
                    p++;
                    if (loaded == filesize) {
                         picture._alpha = 0;
                         picture.loadMovie(image[p], 1);
                         desc_txt.text = description[p];
                         picture_num();
                    }
               }else{
          p=0;
          }
          }

          as for your xml, you'll need to edit the xml file.  how you parse the xml in flash depends on how you edit the xml.