# \[MX\]Panning images using Todd Dominey's slideshow technique

**URL:** https://forum.kirupa.com/t/mx-panning-images-using-todd-domineys-slideshow-technique/161845
**Category:** flash
**Created:** [September 7, 2005, 3:25pm UTC](https://forum.kirupa.com/t/mx-panning-images-using-todd-domineys-slideshow-technique/161845 "2005-09-07T15:25:42Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![dylancoyne](https://avatars.discourse-cdn.com/v4/letter/d/bc8723/32.png) [@dylancoyne](https://forum.kirupa.com/u/dylancoyne)
#### Post date: [September 7, 2005, 3:25pm UTC](https://forum.kirupa.com/t/mx-panning-images-using-todd-domineys-slideshow-technique/161845/1 "2005-09-07T15:25:42Z")

</div>

Hi,

Being new to XML and relatively competent at actionscript I have hit a brick wall.

How do I pan jpegs using .xpos so that each image will move across the stage as it appears?

As you can see I have tried adding a var speed so as to increment the movement.

Any help in the right direction would be appreciated.

D

FLASH  
/\* [http://domineydesign.com](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);
    /*WORKING ON THIS PART TO PAN IMAGES*/
    var speed = 1;
    _global.speed = Number(this.firstChild.attributes.speed);
    

    
    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(speed);
    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[num].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();

XML

\<!–  
‘timer’ :: number of seconds between each image transition  
‘order’ :: how you want your images displayed. choose either ‘sequential’ or ‘random’  
‘looping’ :: if the slide show is in sequential mode, this stops the show at the last image (use ‘yes’ for looping, ‘no’ for not)  
‘fadeTime’ :: velocity of image crossfade. Increment for faster fades, decrement for slower. Approximately equal to seconds.  
‘xpos’ :: \_x position of all loaded clips (0 is default)  
‘ypos’ :: \_y position of all loaded clips (0 is default)  
–\>  
\<gallery timer=“10” order=“sequential” fadetime=“2” looping=“no” xpos=“0” ypos=“0” speed=“50”\>  
\<image path=“images/1.jpg” /\>  
\<image path=“images/2.jpg” /\>  
\<image path=“images/3.jpg” /\>  
\<image path=“images/4.jpg” /\>  
\<image path=“images/5.jpg” /\>  
\<image path=“images/6.jpg” /\>  
\</gallery\>
