Jobu
%Europe/Berlin %810 %2005, 20:27
Hallo,
Ik probeel via een xml-file dynamisch een aantal albumknoppen aan te maken (dit lukt), die nadat je erop klikt de foto's van het aangeklikte album moet vertonen.
Daar zit het em.... in mijn functie CreateAlbums maak ik een nested loop, die de foto's moet aanmaken bij een onPress, maar voor elk album geeft hij me er steeds 5(foto's), terwijl er respectievelijk 3, 4 en 5 foto's in de albums zijn.
Een tweede probleem is dat mijn aangemaakte albumknoppen verdwijnen nadat ik erop geklikt heb ...
Wat loopt er mis met mijn geneste for-loop of in mijn onPress??
<?xml version="1.0"?>
<gallery>
<album album_path = "80" album_name = "Album of Death">
<photo pic_path="pics/death1.jpg" title="death1"/>
<photo pic_path="pics/death2.jpg" title="death2"/>
<photo pic_path="pics/death5.jpg" title="death3"/>
</album>
<album album_path = "81" album_name = "Album of the Living">
<photo pic_path="pics/death1.jpg" title="death1"/>
<photo pic_path="pics/death2.jpg" title="death2"/>
<photo pic_path="pics/death3.jpg" title="death3"/>
<photo pic_path="pics/death4.jpg" title="death4"/>
</album>
<album album_path = "82" album_name = "Album 3">
<photo pic_path="pics/death1.jpg" title="death1"/>
<photo pic_path="pics/death2.jpg" title="death2"/>
<photo pic_path="pics/death3.jpg" title="death3"/>
<photo pic_path="pics/death4.jpg" title="death4"/>
<photo pic_path="pics/death5.jpg" title="death5"/>
</album>
</gallery>
var spacing:Number = 19;
function CreateAlbums(my_xml){
var albums = my_xml.firstChild.childNodes;
for (var i:Number=0; i<albums.length;i++){
current_album = albums[i];
alb_mc = attachMovie("album_btn","album_"+i,this.getNextHighestDepth()+1000);
alb_mc._y = 100 + (spacing * i);
alb_mc.album_txt.text = current_album.attributes.album_name;
alb_mc.onRollOver = function(){
this.play("begin");
}
alb_mc.onPress = function(){
this.gotoAndStop("einde");
var fotoplek:Number = 100;
var photos = current_album.childNodes;
for (var i:Number=0; i<photos.length;i++){
current_image = photos[i];
trace(current_image.attributes.pic_path);
var picholder = _root.createEmptyMovieClip("holder_"+i,i);
trace(current_album);
picholder.loadMovie(current_image.attributes.pic_p ath);
picholder._y = 200;
picholder._x = 100 * i;
}
}
}
}
var my_xml:XML = new XML();
my_xml.ignoreWhite = true;
my_xml.onLoad = function(success){
if(success){
CreateAlbums(my_xml);
}
else{
trace ("Loading was Unsuccessful!");
}
}
my_xml.load("gallery.xml");
Ik probeel via een xml-file dynamisch een aantal albumknoppen aan te maken (dit lukt), die nadat je erop klikt de foto's van het aangeklikte album moet vertonen.
Daar zit het em.... in mijn functie CreateAlbums maak ik een nested loop, die de foto's moet aanmaken bij een onPress, maar voor elk album geeft hij me er steeds 5(foto's), terwijl er respectievelijk 3, 4 en 5 foto's in de albums zijn.
Een tweede probleem is dat mijn aangemaakte albumknoppen verdwijnen nadat ik erop geklikt heb ...
Wat loopt er mis met mijn geneste for-loop of in mijn onPress??
<?xml version="1.0"?>
<gallery>
<album album_path = "80" album_name = "Album of Death">
<photo pic_path="pics/death1.jpg" title="death1"/>
<photo pic_path="pics/death2.jpg" title="death2"/>
<photo pic_path="pics/death5.jpg" title="death3"/>
</album>
<album album_path = "81" album_name = "Album of the Living">
<photo pic_path="pics/death1.jpg" title="death1"/>
<photo pic_path="pics/death2.jpg" title="death2"/>
<photo pic_path="pics/death3.jpg" title="death3"/>
<photo pic_path="pics/death4.jpg" title="death4"/>
</album>
<album album_path = "82" album_name = "Album 3">
<photo pic_path="pics/death1.jpg" title="death1"/>
<photo pic_path="pics/death2.jpg" title="death2"/>
<photo pic_path="pics/death3.jpg" title="death3"/>
<photo pic_path="pics/death4.jpg" title="death4"/>
<photo pic_path="pics/death5.jpg" title="death5"/>
</album>
</gallery>
var spacing:Number = 19;
function CreateAlbums(my_xml){
var albums = my_xml.firstChild.childNodes;
for (var i:Number=0; i<albums.length;i++){
current_album = albums[i];
alb_mc = attachMovie("album_btn","album_"+i,this.getNextHighestDepth()+1000);
alb_mc._y = 100 + (spacing * i);
alb_mc.album_txt.text = current_album.attributes.album_name;
alb_mc.onRollOver = function(){
this.play("begin");
}
alb_mc.onPress = function(){
this.gotoAndStop("einde");
var fotoplek:Number = 100;
var photos = current_album.childNodes;
for (var i:Number=0; i<photos.length;i++){
current_image = photos[i];
trace(current_image.attributes.pic_path);
var picholder = _root.createEmptyMovieClip("holder_"+i,i);
trace(current_album);
picholder.loadMovie(current_image.attributes.pic_p ath);
picholder._y = 200;
picholder._x = 100 * i;
}
}
}
}
var my_xml:XML = new XML();
my_xml.ignoreWhite = true;
my_xml.onLoad = function(success){
if(success){
CreateAlbums(my_xml);
}
else{
trace ("Loading was Unsuccessful!");
}
}
my_xml.load("gallery.xml");