| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Oct 2003 Ort: ---
Beiträge: 32
| xml-based search engine+asking for changes
Es gibt unter http://downloads.flashkit.com/movies...n_Car-2793.zip eine search-engine zu laden; Die wurde hier auch schon scheibchenweise angedeutet, finde aber nicht mehr den thread..., sorry, trotz inzwischen müder Eingabeaufforderungen Ich habe nach meinen Vorstellungen das Layout und die xml-file geändert, doch zeigt selbst das Original im result-field den Text mit umgekehrten Anfangsbuchstaben. So möchte ich das (verständlicherweise) nicht. Meine Frage: wo muss ich im Script von Search Reaults was und wie umschreiben, dass ich 1.: dieses change nicht mehr habe? Also, kein Tausch von Versalien und Kapitalen ( Das Ergenisfeld soll den Text genauso anzeigen, wie in der xml-.file geschrieben ) 2.: wo muss ich im Script von Search Reaults was und wie umschreiben, dass nur ein result gezeigt wird? Ich suche jetzt schon seit 3 Wochen; da scripting and all that matters nicht meine wirkliche Lebenserfüllung sind und mir somit der Zugang auf fast erklärliche Weise verschlossen bleibt, hoffe ich auf all Eure Hilfe von z.B. scrawer, sascha, pape, und wer sich angesprochen fühlt und und und ... L.G. webpixels
__________________ --- |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Oct 2003 Ort: ---
Beiträge: 32
| der Quellcode:
von Scene2: scene = 2; _root.SearchBar.gotoAndStop("up"); function mySearcher () { status = "Suche..."; //This code removes possible existing movie duplicates so it can cleanly build a new list. //It removes every movie except the main base Searcher movie. for (mc in _root.ListMovie2) { tempName = ""+ListMovie2[mc]; if (tempName.charAt(tempName.length-1)<>"r") { ListMovie2[mc].removeMovieClip(); } } ; //Create the search word array by sending everything to lowercase. tempSearch = SearchField.toLowerCase(); if(tempSearch.charAt(tempSearch.length-1) == " "){ do { tempSearch = tempSearch.substring(0,tempSearch.length-1); } while ( tempSearch.charAt(tempSearch.length-1) == " "); } searchwords = tempSearch.split(" "); //This code sets a limit of 3 words to search by. The else is the actual search Engine. if (searchwords.length>3) { _root.ListMovie2.Searcher.searchtext = "Bitte max. 3 Worte eingeben."; _root.ListMovie2.Searcher.mymenu = new Object(); _root.ListMovie2.Searcher.mymenu.menuoff = "Suchbefehl konnte nicht abgeschlossen werden"; _root.ListMovie2.Searcher.mymenu.menuon = "Keine Suche stattgefunden"; _root.ListMovie2.Searcher.menu = _root.ListMovie2.Searcher.mymenu.menuoff.toString( ); status = "Suche erfolglos-"+ newline + " Bitte nochmal versuchen"; } else { ////Beginning of search engine.//// /////////////////////////////////// // // // Variables: // // Changed - a check to see if // // anything was modified. // // // // matches - var used to pass // // the number of hits // // // // counter - used as an iterator// // to count actual hits // // // /////////////////////////////////// changed = "no"; matches = 0; i = 0; counter = 0; while (i<xmlList.firstChild.childNodes.length+1) { j = 0; while (j<xmlList.firstChild.childNodes[i].childNodes.length+1) { if (xmlList.firstChild.childNodes[i].childNodes[j].nodeName == "txt") { //Change the search text for this node to lowercase and split it into a temporary Array myTemp = _root.xmlList.firstChild.childNodes[i].childNodes[j].toString().toLowerCase(); myTemp =myTemp.substring(myTemp.indexOf(">")+1, myTemp.length-6); tempArray = myTemp.split(" "); //Loop through the temporary Array and through the search word Array to catch any hits for (h=0; h<tempArray.length; h++) { for (word in searchwords) { if (tempArray[h].indexOf(searchwords[word]) != -1){ tempArray[h] = tempArray[h].charAt(0).toString() + tempArray[h].substring(1,tempArray[h].length); tempArray[h] = "<font color='#445E79'>"+tempArray[h]+"</font>"; changed = "Yes"; matches = matches+1; }; }; //After the last word is searched for in this tempArray, change any text not selected to a first-letter capital state tempArray[h] = tempArray[h].charAt(0).toString() + tempArray[h].substring(1,tempArray[h].length); } ; //Duplicate the Searcher Movie and populate the variables based on the Changed variable if (changed == "Yes") { counter = counter+1; if (counter == 1) { _root.ListMovie2.Searcher.mymenu = new Object(); _root.ListMovie2.Searcher.mymenu.menuoff = _root.xmlList.firstChild.childNodes[i].childNodes[j-4].toString(); _root.ListMovie2.Searcher.mymenu.menuon = _root.xmlList.firstChild.childNodes[i].childNodes[j-2].toString(); _root.ListMovie2.Searcher.menu = _root.ListMovie2.Searcher.mymenu.menuoff.toString( ); _root.ListMovie2.Searcher.searchtext = tempArray.join(" "); } else if (counter == 2) { duplicateMovieClip (_root.ListMovie2.Searcher, "Searcher"+counter, counter); setProperty ("_root.ListMovie2.Searcher"+counter, _x, _root.ListMovie2.Searcher._x); setProperty ("_root.ListMovie2.Searcher"+counter, _y, _root.ListMovie2.Searcher._y+_root.ListMovie2.Sear cher._height); var tempVal = eval("_root.ListMovie2.Searcher"+counter); tempVal.mymenu = new Object(); tempVal.mymenu.menuoff = _root.xmlList.firstChild.childNodes[i].childNodes[j-4].toString(); tempVal.mymenu.menuon = _root.xmlList.firstChild.childNodes[i].childNodes[j-2].toString(); tempVal.menu = tempVal.mymenu.menuoff.toString(); tempVal.searchtext = tempArray.join(" "); } else { duplicateMovieClip (_root.ListMovie2.Searcher, "Searcher"+counter, counter); setProperty ("_root.ListMovie2.Searcher"+counter, _x, _root.ListMovie2.Searcher._x); var drop = (counter-1)*getProperty("_root.ListMovie2.Searcher", _height); setProperty ("_root.ListMovie2.Searcher"+counter, _y, _root.ListMovie2.Searcher._y+drop); var tempVal = eval("_root.ListMovie2.Searcher"+counter); tempVal.mymenu = new Object(); tempVal.mymenu.menuoff = _root.xmlList.firstChild.childNodes[i].childNodes[j-4].toString(); tempVal.mymenu.menuon = _root.xmlList.firstChild.childNodes[i].childNodes[j-2].toString(); tempVal.menu = tempVal.mymenu.menuoff.toString(); tempVal.searchtext = tempArray.join(" "); } //The Next 3 lines are for the scroller _root.listHeight = Math.round(getProperty(_root.ListMovie2, _height)); _root.moveBy = Math.round(_root.listHeight/100); _root.startYval = getProperty(_root.ListMovie2, _y); } } changed = "no"; j++; } ; i++; } ; //In case of no matches being found. if (matches!=0){ status = "Suche abgeschlossen"; if (matches == 1){ status = status + ""; } else { status = status + ""; } } else { _root.ListMovie2.Searcher.searchtext = ""; _root.ListMovie2.Searcher.mymenu = new Object(); _root.ListMovie2.Searcher.mymenu.menuoff = "- - -"; _root.ListMovie2.Searcher.mymenu.menuon = "leider nichts gefunden"; _root.ListMovie2.Searcher.menu = _root.ListMovie2.Searcher.mymenu.menuoff.toString( ); status = "Suche ergab keinen Treffer"; } } } //Load the list from the XML document _root.xmlList = new XML(); _root.xmlList.load("ListExample.xml"); xmlList.onLoad = mySearcher; stop (); In Zeile 84 steht: //After the last word is searched for in this tempArray, change any text not selected to a first-letter capital state wie ändere ich das? ich mein, einfach löschen is nicht, liegt das am String oder UpperCase oder charAt? Ich habe schon soviel ausprobiert, ich kann's nicht. Bitte helft mir! Thx, webpixels
__________________ --- |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Oct 2003 Ort: ---
Beiträge: 32
| nach langer Recherche gefunden:
diesen Thread: http://www.flashforum.de/forum/showt...ne#post1026117 Pape hat Tips gegeben, doch bin ich zu AS-fremd, als dass ich seine Vorschläge verstehen könnte. Besides: sie bringen mich nicht zur gewünschten Änderung. Fakt ist, dass ich eine xml-datei mit 90 Titeln habe, deren Suchzeit in Flash bei wiederholtem Klicken langsamer wird, bishin zur NullAnzeige ( aber keine Fehlermeldung, nur leeres Ergebnisfeld); liegt das daran, dass er mir mehrere hits anzeigt, was ich ja gar nicht möchte? Tja, und die KleinGrossSchreibung krieg ich auch nicht geändert; Also, vielleicht erbarmt sich jemand...
__________________ --- |
| | |
| | #4 (permalink) |
| notzucht Registriert seit: Nov 2003 Ort: Potsdam
Beiträge: 2.939
|
Moin ![]()
shorty
__________________ . Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir . |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Oct 2003 Ort: ---
Beiträge: 32
|
Hallo shorty Link zu XML-Datei: der Einfachheit wegen habe ich eine reine Beispiel-Datei als xml mitgeliefert. genaue Kurzbeschreibung Die Ausgabe soll im Anzeigefeld genauso erscheinen, wie im xml-file eingegeben; Das AS schreibt aber, ich meine ab Zeile 19, irgendetwas um, so dass die Kapitals in Minuskeln erscheinen. Ferner soll nur ein Treffer erfolgen, im AS werden aber arrays, oder weiss der Programmierer was, multipliziert oder so oder ähnlich... Tja, wäre super, wenn Du (IHR) mir weiterhelfen könntet. grüße webpixels
__________________ --- |
| | |
| | #6 (permalink) | |
| notzucht Registriert seit: Nov 2003 Ort: Potsdam
Beiträge: 2.939
| Zitat:
lg, shorty
__________________ . Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir . | |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Oct 2003 Ort: ---
Beiträge: 32
| Das ist schön, aber schon die ist randvoll mit Fehlern: nicht UTF-8 codiert; stümmt HTML-Tags (b, i ,br) in den einzelnen, wahrscheinlich als Textknoten gedachten, Elementen; -> läuft aber im swf Das Problem mit den HTML-Tags ummgehst Du, indem Du die Elemente in denen ein HTML formatierter Text enthalten ist, um ein CDATA Bereich erweiterst. Ah ja, äh, wie? Bleibt natürlich erstmal die Frage, ob Du die XML überhaupt ändern kannst/darfst? Kommt natürlich die Antwort: Ich darf und kann, aber leider nicht korrekt... Nochmals die Probs: Sowohl das Original als auch meine swf zeigen im result-field den Text mit Minuskeln. So möchte ich das (verständlicherweise) nicht. Meine Frage: wo muss ich im Script von Search Reaults (scene2) was und wie umschreiben, dass ich 1. dieses change nicht mehr habe? Also, kein Tausch von Minuskeln und Kapitalen ( Das Ergenisfeld soll den Text genauso anzeigen, wie in der xml-file geschrieben ) 2. wo muss ich im Script von Search Reaults was und wie umschreiben, dass nur ein result gezeigt wird? LG webpixels
__________________ --- |
| | |
| | #8 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.147
| Den Text mit <![CDATA[Hallo ich bin ein schlechtes Beispiel]]> umschliessen. Ein Suchergebnis bekommst du, indem du, so würde ich intuitiv mal sagen, die letzten for-Schleifen nicht durchläufst, sondern nur das erste Ergebnis nimmst. Da wo du nach changed suchst oder Abfragen stellst (Gott weiss, warum es ein String und kein Boolean ist), einfach mal ein false, reinsetzen. Ist aber auch nur ein Schuss ins Blaue... Ein Tipp: neu und sauberer coden!
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |