You probably wonder why I make a fuss about loading text in the textbox but this is pretty important here and I have spent hours trying to find different solutions. When our search was successful and we select one of the search items for display, we can only get one item displayed, since the listbox script allows only that: the item name and a property belonging to the item, which could be a text, url or something like that. But we want to be able to display many items, which we do by creating variables. This was no problem, when our search always resulted in one match as described in my previous tutorials. However, now we have to find a different solution. It is actually possible to do that but the script becomes really bulky. I have an example on my web site, when you go to flashspot and click on Advanced XML search engine. I do not go further into details. You can find out by yourself, but this version sets limits because of the bulkyness of the script.
Why is this a problem? When you go through the childnodes of an XML file using a loop and ask for the childnodes creating a variable, the Flash XML parser will only list the last found node in a textfield for example. When you do a trace action, all nodes will be listed, but we cannot use a trace action for our purpose as you can imagine. So the solution I came up with is to create a separate textfile, which contains what we want: links to other websites and links to go to other frames in our movie and links to upload more movies or pictures. I first did not know it was possible but learnt it in the flashkit discussion forum. Now after all these explanations you know why we create a loadvars function to upload text files. I am not going to explain this further.
//function to load the text for the main textfield.
//"modeldescription" equals the attribute "ID", which holds the name for the text.
function loadText(modelDescription) {
loadVarsText = new loadVars();
loadVarsText.load(modelDescription);
loadVarsText.onLoad = function(success) {
if(success) {
InstanceName_0.html = true;//we want to use html in the text.
InstanceName_0.htmlText = this.myText;//"myText" is var name in the text document.
}else{
trace("not loaded");
}
}
}