Zurück   Flashforum > Flash > ActionScript > Softwarearchitektur und Entwurfsmuster

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-10-2007, 22:25   #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
__________________
---
webpixels ist offline   Mit Zitat antworten
Alt 14-10-2007, 08:21   #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
__________________
---
webpixels ist offline   Mit Zitat antworten
Alt 14-10-2007, 09:22   #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...
__________________
---
webpixels ist offline   Mit Zitat antworten
Alt 14-10-2007, 09:32   #4 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Moin
  1. Link zu XML-Datei
  2. Bitte nochmal eine genaue Kurzbeschreibung
    • Wonach soll gesucht werden?
    • Was soll mit dem Ergebnis passieren?
lg,
shorty
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.
shorty ist offline   Mit Zitat antworten
Alt 14-10-2007, 16:48   #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
Angehängte Dateien
Dateityp: zip ListExample.xml.zip (459 Bytes, 5x aufgerufen)
__________________
---
webpixels ist offline   Mit Zitat antworten
Alt 15-10-2007, 05:27   #6 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Zitat:
... der Einfachheit wegen habe ich eine reine Beispiel-Datei als xml
mitgeliefert.
Das ist schön, aber schon die ist randvoll mit Fehlern:
  • nicht UTF-8 codiert
  • HTML-Tags (b, i ,br) in den einzelnen, wahrscheinlich als Textknoten gedachten, Elementen
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. Bleibt natürlich erstmal die Frage, ob Du die XML überhaupt ändern kannst/darfst?


lg,
shorty
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.
shorty ist offline   Mit Zitat antworten
Alt 16-10-2007, 20:28   #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
__________________
---
webpixels ist offline   Mit Zitat antworten
Alt 16-10-2007, 21:03   #8 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.279
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!
Omega Psi ist offline   Mit Zitat antworten
Alt 20-10-2007, 08:59   #9 (permalink)
l2l|c4o
 
Benutzerbild von Sir Freako
 
Registriert seit: Nov 2005
Ort: düstere Grotte im Süden
Beiträge: 1.172
http://www.sephiroth.it/file_detail.php?id=130
Sir Freako ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 05:34 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2014 Marc Thiele