Can Someone Help Me Fix this Array to Load from an XML?

Hey All,

I’m trying to use the following actionscript in a photo gallery, I believe it’s based on a tutorial from Kirupa.

Basically, where it uses pArray and loads a series of images you define within the SWF itself (ie. g1-0.jpg, g1-1.jpg, etc.) I want to tell it to look to a text file, or to an XML file to load the images.

I want a client to be able to add/subtract images without having to access the SWF. I love this gallery otherwise, but if they decide to use one less image, or one more image it will show a blank space.

I was hoping I could tell it to just load any image starting with a sertain prefix, like g1-*.jpg, then it would display g1-0.jpg through g1-20.jpg, etc. If the client added or subtracted an image, the file would go to the start of the list.

Thanks for any help!!! :slight_smile:

-md

the code:

// 
// i wrote this code, but you can use and abuse it however you like.
// the methods are defined in the order which they occur to make it
// easier to understand.
// 
// variables ------------------------------------------
// put the path to your pics here, include the slashes (ie. "pics/")
// leave it blank if they're in the same directory
this.pathToPics = "animation/";
// fill this array with your pics
this.pArray = ["g1-0.jpg", "g1-1.jpg", "g1-2.jpg", "g1-3.jpg", "g1-4.jpg","g1-5.jpg","g1-6.jpg","g1-7.jpg"];
this.fadeSpeed = 20;
this.pIndex = 0;
// MovieClip methods ----------------------------------
// d=direction; should 1 or -1 but can be any number
// loads an image automatically when you run animation
loadMovie(this.pathToPics+this.pArray[0], _root.photo);
MovieClip.prototype.changePhoto = function(d) {
	// make sure pIndex falls within pArray.length
	this.pIndex = (this.pIndex+d)%this.pArray.length;
	if (this.pIndex<0) {
		this.pIndex += this.pArray.length;
	}
	this.onEnterFrame = fadeOut;
};
MovieClip.prototype.fadeOut = function() {
	if (this.photo._alpha>this.fadeSpeed) {
		this.photo._alpha -= this.fadeSpeed;
	} else {
		this.loadPhoto();
	}
};
MovieClip.prototype.loadPhoto = function() {
	// specify the movieclip to load images into
	var p = _root.photo;
	// ------------------------------------------
	p._alpha = 0;
	p.loadMovie(this.pathToPics+this.pArray[this.pIndex]);
	this.onEnterFrame = loadMeter;
};
MovieClip.prototype.loadMeter = function() {
	var i, l, t;
	l = this.photo.getBytesLoaded();
	t = this.photo.getBytesTotal();
	if (t>0 && t == l) {
		this.onEnterFrame = fadeIn;
	} else {
		trace(l/t);
	}
};
MovieClip.prototype.fadeIn = function() {
	if (this.photo._alpha<100-this.fadeSpeed) {
		this.photo._alpha += this.fadeSpeed;
	} else {
		this.photo._alpha = 100;
		this.onEnterFrame = null;
	}
};
// Actions -----------------------------------------
// these aren't necessary, just an example implementation
this.onKeyDown = function() {
	if (Key.getCode() == Key.LEFT) {
		this.changePhoto(-1);
	} else if (Key.getCode() == Key.RIGHT) {
		this.changePhoto(1);
	}
};
Key.addListener(this);