-
[F8] Add field to XML
Hi,
I'm currently using an XML file to load an image and menu-name into a list component and would like to add a description field to this.
I have added another attribute to my XML file called 'desc' so the file is now arranged:
PHP Code:
<xml>
<listitem name="Le Mans 06, 0-5" url="http://www.dedicatedmicros.com/ukftp/FLVHUB/FLV/" thumb="1.jpg" desc="some text">
<stream name="1.FLV" start="0" len="-1"/>
</listitem>
After dropping a dynamic text field onto the stage instance named 'description', I have attempted to modify the xmllist.load code but despite not firing any errors, this has not resolved the issue:
That code is as follows: (changes are proceeded by '//-')
PHP Code:
//-------------------------LIST SELECTION CHANGE-----------------------------
//Add an event listener on the list, when it triggers, run the listListener function to repopulate the list
list.addEventListener("change", listListener);
//Function that loads the XML file, parses it, and builds the list of available video clips
var xmllist = new XML(); //setup a variable to hold the XML
xmllist.ignoreWhite = true;
xmllist.load( "video_playlist.xml" ); //load the XML file
//The following gets called when the XML has been loaded
xmllist.onLoad = function( status ) {
if ( !status )
trace( status );
var entries = this.childNodes[0];
var playlists = {};
var nav = [];
//- var description = {};
//- var descrip = [];
for ( var i = 0; i < entries.childNodes.length; i++ ) {
var entry = entries.childNodes[i];
if ( entry.nodeName == "listitem" )
//builds array of video clip names
playlists[entry.attributes.name] = entry;
else if ( entry.nodeName == "menu" ) {
//builds array of available videos
for ( var j = 0; j < entry.childNodes.length; j++ )
nav[j] = playlists[entry.childNodes[j].attributes.name];
//- if ( entry.nodeName == "desc" ) {
//- //builds array of descriptions
//- description[entry.attributes.desc] = entry;
//- for ( var k = 0; k < entry.childNodes.length; k++ )
//- descrip[k] = //-description[entry.childNodes[k].attributes.desc];
}
} //end else if
} //end if
//sends the array of videos to the listbox UI
list.dataProvider = nav;
desc.text = descrip;
} //end xmllist.onload
Was hoping someone could help point me in the right direction as to where i'm going wrong with this one as i've attempted various things now but have not had success with any.
If anyone can offer any assistance here I would be very appreciative,
Thanks,
Dave
-
What does the code currently do? Does it populate anything at all into the dropdown?
If it ain't broke, don't fix it.
-
Thanks for the reply,
The code currently populates a list component with the 'listitem name' and, with the use of the cellrenderer class, thumbnail images within the listbox.
All I basically want to do is add a new attribute to the XML doc in which I can store a description that will load into a dynamic textbox on selecteditem change.
The commented out sections (code preceeded by '//-') is the code I have attempted to use to load in the contents of the description attribute from the XML doc.
Am hoping you point out where I've gone wrong..
Thanks
-
FK'n_dog
this is the method i use ( no exp. with cellrenderer class yet )
to avoid conflict with reserved words i have changed - name,url,start
and altered the format of the xml slightly
hope you can adapt this to your project
Code:
xmllist = new XML();
xmllist.ignoreWhite = true;
xmllist.load("video_playlist.xml");
xmllist.onLoad = function(){
rootNode = xmllist.firstChild;
leng = rootNode.childNodes.length;
for(var i=0; i<leng; i++){
nom = rootNode.childNodes[i].attributes.vname;
vurl = rootNode.childNodes[i].attributes.vurl;
thu = rootNode.childNodes[i].attributes.thumb;
des = rootNode.childNodes[i].attributes.desc;
str = rootNode.childNodes[i].attributes.stream;
sta = rootNode.childNodes[i].attributes.vstart;
len = rootNode.childNodes[i].attributes.len;
list.addItemAt(i,{label:nom, vurl:vurl, thu:thu,
desc:des, str:str, sta:sta, len:len})
}
}
obj2 = new Object();
obj2.change = function(comp){
vid = comp.target.selectedItem.label; trace(vid);
url = comp.target.selectedItem.vurl; trace(url);
thumb = comp.target.selectedItem.thu; trace(thumb);
desc = comp.target.selectedItem.desc; trace(desc);
stream = comp.target.selectedItem.str; trace(stream);
vstart = comp.target.selectedItem.sta; trace(vstart);
lenth = comp.target.selectedItem.len; trace(lenth);
trace("---------------");
_root.description.text = desc;
}
list.addEventListener("change", obj2);
PHP Code:
<xml>
<listitem vname="Le Mans 06, 0-5" vurl="http://www.dedicatedmicros.com/ukftp/FLVHUB/FLV1/" thumb="1.jpg" desc="some text" stream ="1.FLV" vstart="0" len="-1">
</listitem>
<listitem vname="Le Mans 05, 0-4" vurl="http://www.dedicatedmicros.com/ukftp/FLVHUB/FLV2/" thumb="2.jpg" desc="more text" stream ="2.FLV" vstart="10" len="10">
</listitem>
</xml>
-
Thanks a lot! will go through that tonight and see if I can get it working
Thx again!
Dave
-
Hi, thanks again for your assistance..
Tried your code and got the description box working but it crippled the list in the process. Have attempted to converge the two together but am not great with XML and am beginning to run out of ideas on this one.
Have uploaded my FLA etc and was hoping you could have a look and see if you can work out where I've gone wrong: (all files are listed at the following)
http://www.dedicatedmicros.com/ukftp/docs/
or, i've also zipped it all up for convnience if you prefer
http://www.dedicatedmicros.com/ukftp...ideosource.zip
Thanks for the advice,
Dave
-
FK'n_dog
sorry , no can do
mx2004 (version 7) here
-
ahh well.. thanks for trying anyway
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|