This is a continuation of the following post:
http://www.kirupa.com/forum/showthread.php?t=284487
I just wanted to conclude that I was able to figure everything out by using this forum. Thank you to Kirupa for providing this great resource.
I am posting the code below to help anyone that is having problems accessing XML data in a menu style application. It turns out that “for loops” are the greatest thing ever invented. Once I understood the principles of the “for loop” and “XML structure”, almost everything fell into place. Everything else was answered by this forum and Kirupas’ tutorials.
_parent.projectsMovie._visible = false;
var item_spacing = 34;
var item_count = 0;
var item2_count = 0;
var item3_count = 0;
var project:XMLNode;
var url:XMLNode;
//set depth of scroll bar movieclips
maskedView.swapDepths(Math.round(this._xscale)+5000);
btnUp.swapDepths(Math.round(this._xscale)+4000);
btnDown.swapDepths(Math.round(this._xscale)+3000);
scrollFace.swapDepths(Math.round(this._xscale)+2000);
scrollTrack.swapDepths(Math.round(this._xscale)+1000);
//function to delete thumb_vessel movieclip
function delete_thumbs() {
removeMovieClip("thumb_vessel");
item2_count = 0;
}
//function to create empty thumb_vessel movieclip
function create_thumbs() {
this.createEmptyMovieClip("thumb_vessel", 100);
}
//function to create empty contentMain movieclip
function create_buttons() {
this.createEmptyMovieClip("contentMain", 0);
contentMain.setMask(maskedView);
contentMain._x = 595;
contentMain._y = 95;
}
var x:XML = new XML();
x.ignoreWhite = true;
x.onLoad = function() {
var rootNode:XMLNode = this.firstChild;
create_buttons();
for (i=0; i<rootNode.childNodes.length; i++) {
project = rootNode.childNodes*;
var b = contentMain.attachMovie("button_mc", "button"+item_count, item_count);
b._y = item_count*item_spacing;
b._y = Math.floor(i/1)*item_spacing;
item_count++;
b.name_txt.text = project.attributes.name;
b.school_txt.text = project.attributes.school;
b.onRollOver = function() {
this.name_txt.textColor = 0xFFFF00;
this.school_txt.textColor = 0xFFFF00;
var my_bkgd:Color = new Color(this.bkgd_mc);
my_bkgd.setRGB(0x666666);
var my_border:Color = new Color(this.border_mc);
my_border.setRGB(0xB5B5B5);
}
b.onRollOut = function() {
this.name_txt.textColor = 0x000000;
this.school_txt.textColor = 0x000000;
var my_bkgd:Color = new Color(this.bkgd_mc);
my_bkgd.setRGB(0xFFFFFF);
var my_border:Color = new Color(this.border_mc);
my_border.setRGB(0x000000);
}
b.onPress = function() {
whoIsOn.name_txt.textColor = 0x000000;
whoIsOn.school_txt.textColor = 0x000000;
var whoIsOn_my_bkgd:Color = new Color(whoIsOn.bkgd_mc);
whoIsOn_my_bkgd.setRGB(0xFFFFFF);
var whoIsOn_my_border:Color = new Color(whoIsOn.border_mc);
whoIsOn_my_border.setRGB(0x000000);
whoIsOn.enabled = true;
this.name_txt.textColor = 0xFFFF00;
this.school_txt.textColor = 0xFFFF00;
var my_bkgd:Color = new Color(this.bkgd_mc);
my_bkgd.setRGB(0x000000);
var my_border:Color = new Color(this.border_mc);
my_border.setRGB(0x000000);
var currBtn:Number = this.getDepth();
delete_thumbs();
create_thumbs();
for(j=0; j<rootNode.firstChild.childNodes.length; j++);
project2= rootNode.childNodes[currBtn];
var urls:Number = project2.firstChild.childNodes.length;
for (p=0; p<urls; p++) {
var url:XMLNode = project2.firstChild.childNodes[p];
var t = thumb_vessel.attachMovie("thumb_mc","thumb"+item2_count, item2_count);
t.html.text = url.attributes.html;
t.newWin.text = item3_count;
t.height.text = url.attributes.height;
t.width.text = url.attributes.width;
item3_count++;
if(url.attributes.quadrant == 1) {
t._x = 205;
t._y = 65;
} else if(url.attributes.quadrant == 2) {
t._x = 335;
t._y = 65;
} else if(url.attributes.quadrant == 3) {
t._x = 465;
t._y = 65;
} else if(url.attributes.quadrant == 4) {
t._x = 205;
t._y = 195;
} else if(url.attributes.quadrant == 5) {
t._x = 335;
t._y = 195;
} else if(url.attributes.quadrant == 6) {
t._x = 465;
t._y = 195;
} else if(url.attributes.quadrant == 7) {
t._x = 205;
t._y = 325;
} else if(url.attributes.quadrant == 8) {
t._x = 335;
t._y = 325;
} else if(url.attributes.quadrant == 9) {
t._x = 465;
t._y = 325;
}
t.thumb_holder.loadMovie(url.attributes.thumb);
t.onRollOver = function() {
this.swapDepths(Math.round(this._xscale)+100);
var thumb_brdr:Color = new Color(this.thumb_border);
thumb_brdr.setRGB(0xFFFF00);
}
t.onRollOut = function() {
var thumb_brdr:Color = new Color(this.thumb_border);
thumb_brdr.setRGB(0x000000);
}
t.onRelease = function() {
var html:String = this.html.text;
var newWin:String = this.newWin.text;
var height:String = this.height.text;
var width:String = this.width.text;
getURL("javascript:openNewWindow('" + String(html) + "','newWin" + String(newWin) + "','height=" + String(height) + ",width=" + String(width) + ",toolbar=no,menubar=no,directories=no,location=no,scrollbars=no,resizable=no,top=0,left=0,margin=0')");
}
item2_count++;
}
}
b.onRelease = function() {
this.enabled = false;
whoIsOn = this;
}
}
scrolling = function () {
var scrollHeight:Number = scrollTrack._height;
var contentHeight:Number = contentMain._height;
var scrollFaceHeight:Number = scrollFace._height;
var maskHeight:Number = maskedView._height;
var initPosition:Number = scrollFace._y=scrollTrack._y;
var initContentPos:Number = contentMain._y;
var finalContentPos:Number = maskHeight-contentHeight+initContentPos;
var left:Number = scrollTrack._x;
var top:Number = scrollTrack._y;
var right:Number = scrollTrack._x;
var bottom:Number = scrollTrack._height-scrollFaceHeight+scrollTrack._y;
var dy:Number = 0;
var speed:Number = 10;
var moveVal:Number = (contentHeight-maskHeight)/(scrollHeight-scrollFaceHeight);
scrollFace.onPress = function() {
var currPos:Number = this._y;
startDrag(this, false, left, top, right, bottom);
this.onMouseMove = function() {
dy = Math.abs(initPosition-this._y);
contentMain._y = Math.round(dy*-1*moveVal+initContentPos);
};
};
scrollFace.onMouseUp = function() {
stopDrag();
delete this.onMouseMove;
};
btnUp.onPress = function() {
this.onEnterFrame = function() {
if (contentMain._y+speed<maskedView._y) {
if (scrollFace._y<=top) {
scrollFace._y = top;
} else {
scrollFace._y -= speed/moveVal;
}
contentMain._y += speed;
} else {
scrollFace._y = top;
contentMain._y = maskedView._y;
delete this.onEnterFrame;
}
};
};
btnUp.onDragOut = function() {
delete this.onEnterFrame;
};
btnUp.onRelease = function() {
delete this.onEnterFrame;
};
btnDown.onPress = function() {
this.onEnterFrame = function() {
if (contentMain._y-speed>finalContentPos) {
if (scrollFace._y>=bottom) {
scrollFace._y = bottom;
} else {
scrollFace._y += speed/moveVal;
}
contentMain._y -= speed;
} else {
scrollFace._y = bottom;
contentMain._y = finalContentPos;
delete this.onEnterFrame;
}
};
};
btnDown.onRelease = function() {
delete this.onEnterFrame;
};
btnDown.onDragOut = function() {
delete this.onEnterFrame;
};
if (contentHeight<maskHeight) {
scrollFace._visible = false;
btnUp.enabled = false;
btnDown.enabled = false;
} else {
scrollFace._visible = true;
btnUp.enabled = true;
btnDown.enabled = true;
}
};
scrolling();
}
x.load("projects.xml");
stop();
If anyone wants to see this code in action check out:
http://www.greekink.com click on “PROJECTS”.
Good Luck!