A Simple XML-Based Searchable Database - ActionScript for Search Engine Continuation
(Page 4 of 5 )
ActionScript for Search Engine Continuation...
Next we fill the textfield ´headline´ with the corresponding content and address the attributes myUrl containing the url and the attribute name having the same content as the corresponding childnodes. This is very important for the search capability. When the if statement here is positive the search string will be assigned to thisName and will hold only the search string.
We can now use thisName in the else if statement. We cannot use urlName, because this variable holds more than one name. Even one of the names matches the others won't and the else if statement will always be executed as well. So to have the search engine work the childnode names have to fit to an attribute with the same string though not necessary the same case.
//here is a specific function for the search engine with the var myModel
function findMFModels(myModel) {
var myModel;
var modelName;
for (var count02=0; count02<=myModel.childNodes.length; count02++) {
//we are defining the var modelName here
modelName = myModel.childNodes[count02].nodeName.toLowerCase();
//here the string from the input textfield is compared
//with the name of the childnodes
if (searchWindow.toLowerCase() == modelName) {
//if there is a match we do all this
modelsDescryption = myModel.childNodes[count02].firstChild;
InstanceName_0.text = modelsDescryption;
headline = myModel.childNodes[count02].attributes.name;
pic = myModel.childNodes[count02].attributes.photo;
loadMovie(pic,"modelHolder");
//if there is no match...
//see below for special comment
}else if (searchWindow.toLowerCase() !== headline.toLowerCase()){
//we continue searching in another xml file, this can be done for many
//xml files in a row
searchMModel();
}
}
}
}
ActionScript for search engine continuation...
This function is for the second XML file which will be searched as well.
//function for the second and last xml file in the search attempt
function searchMModel() {
var modelName;
model = new XML();
model.onLoad = newModel;
model.ignoreWhite = true;
model.load("mmodels.xml");
function newModel() {
for (var count01=0; count01<=model.childNodes.length; count01++) {
if (this.childNodes[count01].nodeName.toLowerCase() == "models") {
modelsDescryption = this.childNodes[count01];
}
}
findMaleModels(modelsDescryption);
}
function findMaleModels(myModel) {
var myModel;
var modelName;
for (var count02=0; count02<=myModel.childNodes.length; count02++) {
modelName = myModel.childNodes[count02].nodeName.toLowerCase();
//if there is a match we do all this
if (searchWindow.toLowerCase() == modelName) {
modelsDescryption = myModel.childNodes[count02].firstChild;
InstanceName_0.text = modelsDescryption;
headline = myModel.childNodes[count02].attributes.name;
pic = myModel.childNodes[count02].attributes.photo;
loadMovie(pic,"modelHolder");
//if here is also no match...
}else if (searchWindow.toLowerCase() !== headline.toLowerCase()){
//we give up and tell there was no match
headline = "";
InstanceName_0.text = "Sorry, this model is not in our database.";
loadMovie("agency.swf","modelHolder");
}
}
}
}
Next: The Button Scripts >>
More Flash Articles
More By Joachim Schnier