PDA

View Full Version : XML in flash mx what's worng with this??


Planche
05-09-2002, 09:24 PM
I'm having a problem in getting my content.xml to load in to the my flash movie, here's the code i have on flash:

///////////////////////////////////////////////////////////
//// This is my actionscript to load the xml and ////
//// duplicate the movie clips ////
////////////////////////////////////////////////////////

contentXML = new XML();
contentXML.load("content.xml");
windows = new Array();
depthStart = 10;
menu.button._visible = false;
menuitems = new Array();

stop();

function foldmenu(){
if(folded != true){
for(i=0;i<menuitems.length;i++){
setProperty(menuitems[i],_visible,false);
}
folded = true;
}else{
for(i=0;i<menuitems.length;i++){
setProperty(menuitems[i],_visible,true);
}
folded = false;
}
}
function sortLoaded(){
previousX =160;
previousY =0;
preButtonY = 21;
id = 0;
holding = new Array();
holding = contentXML.firstChild.childNodes;
for (i=0;i<holding.length;i++){
if (holding[i].nodeName != null){
set("_root."+holding[i].nodeName+"XML") = new XML(holding[i].childNodes);
trace("line= "+"_root."+holding[i].nodeName+"XML");
uplicateMovieClip("window",holding[i].nodeName+"window",_root.depthStart);
eval(holding[i].nodeName+"window.title") = holding[i].nodeName;
setProperty(holding[i].nodeName+"window",_x,previousX);
setProperty(holding[i].nodeName+"window",_y,previousY);
setProperty(holding[i].nodeName+"window",_visible,false);
previousX = previousX + 13;
previousY = previousY + 13;
windows.push(holding[i].nodeName+"window");
duplicateMovieClip("menu.button",holding[i].nodeName+"button",_root.depthStart+100);
eval("menu."+holding[i].nodeName+"button.title") = holding[i].nodeName;
set("menu."+holding[i].nodeName+"button.id") = id;
++id;
setProperty("menu."+holding[i].nodeName+"button",_y,preButtonY);
setProperty("menu."+holding[i].nodeName+"button",_visible,true);
menuitems.push("menu."+holding[i].nodeName+"button");
preButtonY = preButtonY + 21;
tempArray = new Array();
tempArray = eval("_root."+holding[i].nodeName+"XML.childNodes");
trace("tempArray= " + tempArray);
for (j=0;j<tempArray.length;j++){
if(tempArray[j].nodeName == "newline"){
set(holding[i].nodeName+"window.content") = eval(holding[i].nodeName+"window.content")+newline+newline;
}else if (tempArray[j].nodeName != null && tempArray[j].nodeName != "newline"){
if (tempArray[j].attributes.url.length>0){
urlHolder = tempArray[j].attributes.url;
urlVar = true;
}else{
urlVar = false;
}
if (urlVar == true){
set(holding[i].nodeName+"window.content") = eval(holding[i].nodeName+"window.content")+"<font color=\"#006600\">"+"<a href=\""+urlHolder+"\" target=\"_blank\">"+tempArray[j].attributes.content+"</a></font>"+" ";
}else{
set(holding[i].nodeName+"window.content") = eval(holding[i].nodeName+"window.content")+tempArray[j].attributes.content+" ";
}
}
}
_root.depthStart = _root.depthStart + 1;
}
}
}
contentXML.onLoad = sortLoaded;

////////////////////////////////////////////////////////////////////////////////////

Now i've changed eval() for set() and it still says itīs wrong:
"set requires exactly 2" it says??

how can i get this wright??