bonjour,
je veux realiser un button "rechercher" en flash,alors j'ai preparé un fichier XML pour stocker mes données.
j'ai crée ce script en button et ça donne de bon result,mais le probleme c'est que le besoin c'est en cherchant le mot il doit afficher son equivalant aussi et non juste ce nom!,et je sais pac comment faire car jamais travailler un xml avec flash. voiçi un extrait du fichier xml et le code de rechercher ,
et Merci d'avance pour votre aide.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<?xml version="1.0" ?>
<bestof>
<mot >fete</mot>
<synonyme>celebration</synonyme>
<equivalent>Aid</equivalent>
<img></img>
<son></son>
</bestof>
***script***

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
String.prototype.contains = function(searchString){
	return (this.indexOf(searchString) != -1);
}
Array.prototype.contains = function(searchValue){
	var i = this.length;
	while(i--) if (this[i] == searchValue) return true;
	return false;
}
 
SearchXML = function(nodes, query, useChildElements){
	var results = [];
	for (var i=0; i<nodes.length; i++){
		for (var j=0; j<nodes[i].childNodes.length; j++){
			currNode = nodes[i].childNodes[j];
			if (useChildElements.contains(currNode.nodeName)){
				if (currNode.firstChild.nodeValue.contains(query)){
					results.push(nodes[i]);
					break;
				}
			}
		}
	}
	return results;
}
 
ElementsToSearch = function(){
	var childElementsToSearch = [];
	if (search_fields.title_check.checked){
		childElementsToSearch.push("mot");
	}
 
	return childElementsToSearch;
}
 
DisplayNodes = function(nodes, field_txt){
	field_txt.htmlText = "";
	var entry;
	var separator = "<br>_______________________<br><br>";
	for (var i=0; i<nodes.length; i++){
		entry = "";
		entry += "<b>"+ nodes[i].childNodes[0].firstChild.nodeValue +"</b>";
		entry += " by: "+ nodes[i].childNodes[1].firstChild.nodeValue;
		entry += "<br>"+ nodes[i].childNodes[2].firstChild.nodeValue;
		if (nodes[i].attributes.url.length){
			entry += "<br><a href='" + nodes[i].attributes.url;
			entry += "'><font color='#0000FF'>Read more...</font></a>";
		}
		field_txt.htmlText += entry + separator;
	}
}
 
search_highlight = new TextFormat();
search_highlight.color = 0xFF0000;
search_highlight.italic = true;
 
HighlightOccurences = function(str, field_txt, format){
	if (!str.length) return (0);
	var start = field_txt.text.indexOf(str);
	var end = start + str.length;
	while (start != -1){
		field_txt.setTextFormat(start, end, search_highlight);
		start = field_txt.text.indexOf(str, end);
		end = start + str.length;
	}
}
 
 
var posts_xml = new XML();
posts_xml.ignoreWhite = true;
posts_xml.onLoad = function(success){
	if (success){
		search_fields._visible = true;
	}else results_txt.text = "Error loading XML";
}
search_fields._visible = false;
posts_xml.load("bestofposts.xml");
 
search_fields.title_check.title_txt.text = "Title";
 
search_fields.search_btn.onRelease = function(){
	if (search_fields.query_txt.text.length < 3){
		results_txt.text = "Please use a search term with 3 or more characters.";
		return (0);
	}
 
	var searchElements = ElementsToSearch();
	var nodesWithQuery =	SearchXML(
								posts_xml.firstChild.childNodes,
								search_fields.query_txt.text,
								searchElements
							);
 
	if (nodesWithQuery.length){
		DisplayNodes(
			nodesWithQuery,
			results_txt
		);
	}else{
		results_txt.text = "No results for "+search_fields.query_txt.text+".";
		return (0);
	}
 
	HighlightOccurences(
		search_fields.query_txt.text,
		results_txt,
		search_highlight
	);
 
	scrollbar.setScroll(0);
}
 
scrollbar.setTarget(results_txt);