Help! Photo Gallery Using XML and Flash

Hi!

I have a question about Photo Gallery Using XML and Flash. I want to add more descriptions (captions) about the image that loads.

The XML code has space for one description (captions):

[INDENT]<images>
<pic>
<image>abc.jpg</image>
<caption>One description only!
</caption>
<thumbnail>abc_th.jpg</thumbnail>
</pic>
[/INDENT]
I tried to change everything in the .fla file, but I didn’t get sucess…

What I want, I believed that’s easy… but I don’t know how to make it!

I want this:

[INDENT]<images>
<pic>
<image>abc.jpg</image>
<caption1>One description!
</caption1>
<caption2>Another one!
</caption2>
<caption3>And one more!
</caption3>
<thumbnail>abc_th.jpg</thumbnail>
</pic>
[/INDENT]
And in the .fla file, I need to create 2 more spaces, for the new descriptions (captions).

Please, someone could help me?

Thanks a lot!

Sorry for my BAD english! Google tried to help me!

don’t worry about your english. it is much better than my Portuguese!

you may want to try this .fla example that i got from flashkit. it does the same thing you are asking for - adding a unique description for each photo when it is displayed.

hope this helps

cheers

.

Thanks for help me!
Well, it’s not exactly what I want. I make this picture to explain better…

I need three descriptions for each image.

Can I send you my .fla file? Then you see how it works… because I have no idea what I can change to make that possible… And thanks again for reply in my post and try to help me.

(I have my dictionary English-Portuguese… but my sister stole it from me! And now it’s 02:41 am in Brazil, and she’s sleeping! Tomorrow I’ll get my dictionary back…)

Basicly just in the line that loads the comment from the XML into a variable, this line: [AS]description* = xmlNode.childNodes*.childNodes[1].firstChild.nodeValue; [/AS] just change it too somtin like: [AS]caption1* = xmlNode.childNodes*.childNodes[1].firstChild.nodeValue;
caption2* = xmlNode.childNodes*.childNodes[2].firstChild.nodeValue; caption3* = xmlNode.childNodes*.childNodes[3].firstChild.nodeValue; [/AS]Basicly you just refer to differnt childNodes of that particular photo node. You might have to change the reference to the thumnail node. Not sure.

Im you post ur script up, i can give a bit more of a details answer.

-Aussie Devil

ActionScript Code:

function loadXML(loaded) {
if (loaded) {
xmlNode = this.firstChild;
image = ;
description = ;
thumbnails = ;
total = xmlNode.childNodes.length;
for (i=0; i<total; i++) {
image* = xmlNode.childNodes*.childNodes[0].firstChild.nodeValue;
description* = xmlNode.childNodes*.childNodes[1].firstChild.nodeValue;
thumbnails* = xmlNode.childNodes*.childNodes[2].firstChild.nodeValue;
thumbnails_fn(i);
}
firstImage();
} else {
content = “file not loaded!”;
}
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load(“ana.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();
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;
}
function thumbNailScroller() {
// thumbnail code!
this.createEmptyMovieClip(“tscroller”, 1000);
scroll_speed = 10;
tscroller.onEnterFrame = function() {
if ((_root._ymouse>=thumbnail_mc._y) && (_root._ymouse<=thumbnail_mc._y+thumbnail_mc._height)) {
if ((_root._xmouse>=(hit_right._x-40)) && (thumbnail_mc.hitTest(hit_right))) {
thumbnail_mc._x -= scroll_speed;
} else if ((_root._xmouse<=40) && (thumbnail_mc.hitTest(hit_left))) {
thumbnail_mc._x += scroll_speed;
}
} else {
delete tscroller.onEnterFrame;
}
};
}

function thumbnails_fn(k) {
thumbnail_mc.createEmptyMovieClip(“t”+k, thumbnail_mc.getNextHighestDepth());
tlistener = new Object();
tlistener.onLoadInit = function(target_mc) {
target_mc._x = hit_left._x+(eval(“thumbnail_mc.t”+k)._width+5)*k;
target_mc.pictureValue = k;
target_mc.onRelease = function() {
p = this.pictureValue-1;
nextImage();
};
target_mc.onRollOver = function() {
this._alpha = 50;
thumbNailScroller();
};
target_mc.onRollOut = function() {
this._alpha = 100;
};
};
image_mcl = new MovieClipLoader();
image_mcl.addListener(tlistener);
image_mcl.loadClip(thumbnails[k], “thumbnail_mc.t”+k);
}

XML File:

<?xml version=“1.0” encoding=“utf-8” standalone=“yes”?>
<images>
<pic>
<image>images\ana\01g.jpg</image>
<caption>Ocean</caption>
<thumbnail>images\ana\01p.jpg</thumbnail>
</pic>
</images>

Thanks =)

Consegui!!! Obrigado mesmo cara!

Sorry! Aussie Devil, I modified some parts of the code, and it works!

I change the reference to the thumbnail node too… and some other lines…

And it works!!!

Thanks, thanks a lot!

Now I can go to bed! 03:29 am and I tired!

Thanks Aussie and MPR!

no prob man, glad i could help.