First time here? First time here? Newsletter Signup Newsletter
Login | Register | 651326 Members and growing!
Search tutorials
Author: Joachim Schnier | Website: http://www.cancerinform.net/

The Fla file: Actionscript for search engine

The first part of the search engine script is similar to the above script except that we don't need any arguments. We do not only search in one XML file but in two. The search is performed by first uploading the XML file and then looking for string matches.


//this is the function for the search engine

function searchModel() {

	var modelName;

	model = new XML();

	model.onLoad = newModel;

	model.ignoreWhite = true;

	model.load("fmodels.xml");

	function newModel() {

		for (var count01=0; count01<=models.childNodes.length; count01++) {

			if (this.childNodes[count01].nodeName.toLowerCase() == "models") {

				modelsDescryption = this.childNodes[count01];			

				}

		}

		findMFModels(modelsDescryption);	

}

 //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();

  		   }

	   }

   }

}

//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<=models.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");

  		   }

	   }

   }

}

special comment: by some reason if we write here

}else if (searchWindow.toLowerCase() !== modelName){

which we should imagine to be the correct syntax instead of

}else if (searchWindow.toLowerCase() !== headline.toLowerCase()){

we end up always with a false statement even the name was correct. Therefore, I recommend to always add a name attribute and then as in this case use it for the comparison

» Level Intermediate

Added: 2002-07-05
Rating: 7.92 Votes: 146
(10 being the highest)
» Author
The author is a scientist working in cancer research.
» Download
Download the files used in this tutorial.
» Forums
More help? Search our boards for quick answers!

Comments

  • There are no comments yet. Be the first to comment!

  • You must have javascript enabled in order to post comments.

Leave a Comment
  • Your email address will not be published. All fields are required.
Featured Flash FLA
» Author: Inocreato
» Title: RaiseTheBlocks
» Description: Raise all the blocks to win the game
Featured Sound Loops
Image for equalize

Audio Player

» Author: TomCat Carty
» Title: The Wood
» Description: Just a little game ending or it can maybe be looped. Recorders with music box and percussion to give the feel of well, I don't know, the woods? Free to use, just credit me. thank you
Latest Font
» Author: Fábio FAFERS
» Description: I created this font for free use. Everyone can apply it in personal or business texts. Its free, but I want to be communicated in case of business use. Donations are accepted to keep the project of free fonts alive! Thank you all
Featured Sound Fx
Image for equalize

Audio Player

» Author: Davisigner
» Description: Hmm... what to say about this one? It's reminiscent of the closing notes of the opening music from the Three Stooges done in a church organ style with a closing cymbal crash. I'll give this one away gratis, but feel free to check out my free loops and potential upcoming license-mandated ones over in the respective part of Flashkit.