0 Replies Latest reply on Jul 18, 2006 5:56 PM by Bah10dah

    Stop a Random Picture Loop

    Bah10dah
      I am using Flash MX 2004.
      And thank you in advance for your time and effort...
      How do I stop this loop? I only want it on the initial page and cannot figure out how to get rid of it for the remaining frames.
      Your help is GREATLY appreciated...

      CODE:
      /****************************/
      /* Crossfading slide show */
      /* Author: Todd Dominey */
      /* http://whatdoiknow.org */
      /* http://domineydesign.com */
      /****************************/

      // set random # variables - each must be 0 for first 'while' loop below
      var randomNum = 0;
      var randomNumLast = 0;

      // parent container
      var container_mc = this.createEmptyMovieClip("container",0);
      // movie clip containers
      container_mc.createEmptyMovieClip("loader1_mc",2);
      container_mc.createEmptyMovieClip("loader2_mc",1);

      // preload watcher
      this.createEmptyMovieClip("watcher_mc",100);

      // load xml
      images_xml = new XML();
      images_xml.ignoreWhite=true;
      images_xml.onLoad = parse;
      images_xml.load("images.xml");

      function parse(success) {
      if (success) {
      imageArray = new Array();
      var root = this.firstChild;
      _global.numPause = Number(this.firstChild.attributes.timer * 1000);
      _global.order = this.firstChild.attributes.order;
      _global.looping = this.firstChild.attributes.looping;
      _global.fadetime = Number(this.firstChild.attributes.fadetime);
      _global.xpos = Number(this.firstChild.attributes.xpos);
      _global.ypos = Number(this.firstChild.attributes.ypos);
      var imageNode = root.lastChild;
      var s=0;
      while (imageNode.nodeName != null) {
      imageData = new Object;
      imageData.path = imageNode.attributes.path;
      imageArray[s]=imageData;
      imageNode = imageNode.previousSibling;
      s++;
      }
      // place parent container
      container_mc._x = _global.xpos;
      container_mc._y = _global.ypos;
      // parse array
      imageArray.reverse();
      imageGen(imageArray);
      } else {
      trace('problem');
      }
      }

      // depth swapping
      function swapPlace(clip,num) {
      eval(clip).swapDepths(eval("container_mc.loader"+num+"_mc"));
      }

      function loadImages(data,num) {
      if (i==undefined || i == 2) {
      i=2;
      createLoader(i,data,num);
      i=1;
      } else if (i==1) {
      createLoader(i,data,num);
      i=2;
      }
      }
      function createLoader(i,data,num) {
      thisLoader=eval("container_mc.loader"+i+"_mc");
      thisLoader._alpha=0;
      thisLoader.loadMovie(data
      .path);
      watcher_mc.onEnterFrame=function () {
      var picLoaded = thisLoader.getBytesLoaded();
      var picBytes = thisLoader.getBytesTotal();
      if (isNaN(picBytes) || picBytes < 4) {
      return;
      }
      if (picLoaded / picBytes >= 1) {
      swapPlace("container_mc.loader2_mc",1);
      alphaTween = new mx.transitions.Tween(thisLoader, "_alpha", mx.transitions.easing.Regular.easeOut,0,100,_global.fadetime,true);
      timerInterval = setInterval(imageGen,_global.numPause,data);
      delete this.onEnterFrame;
      }
      }
      }
      function imageGen(data) {
      // random, or sequential?
      if (_global.order=="random") {
      // choose random # between 0 and total number of images
      while (randomNum == randomNumLast) {
      randomNum = Math.floor(Math.random() * data.length);
      trace(randomNum);
      }
      loadImages(data,randomNum);
      randomNumLast = randomNum;
      } else if (_global.order=="sequential") {
      // start at 0, increment to total number of images, then drop back to zero when done
      if (p==undefined || p==data.length && _global.looping=="yes") { p=0; } else { break; }
      loadImages(data,p);
      p++;
      } else {
      trace ("order attribute in xml isn't correct - must specify either 'random' or 'sequential'");
      }
      clearInterval(timerInterval);
      }
      stop();

      Cheers