Hello, je me casse la tête depuis un bout de temps sur la syntaxe RichTextEditor, mon but est de générer des mx:Text à partir du htmlText du RichTextEditor.
Après quelques modifications, j'arrive au XML suivant après avoir séparé les lignes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<txts>
  <line>
    <FONT FACE="Verdana" SIZE="10" COLOR="#FF0000">
      a
      <FONT COLOR="#0B333C">
        <FONT COLOR="#0000FF">b</FONT>
        <FONT COLOR="#996600">c</FONT>
        <FONT COLOR="#FF00CC">d</FONT>
      </FONT>
    </FONT>
  </line>
</txts>
Ensuite, il faut séparer les tags FONT, j'ai donc écrit le code :

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
 
var deln0:Number = 0;
var deln1:Number = 0;
var deln2:Number = 0;
for each(var node0:XML in txt.line)
	{
		deln1 = 0;
		for each(var node1:XML in node0.FONT)
			{
				deln2 = 0;
				for each(var node2:XML in node1.FONT)
					{
						//----------- Récuperation des attributs du noeud parent s'ils ne sont pas définis
 
						var newnode:XML = node2;
						delete txt.line[deln0].FONT[deln1].FONT[deln2];
						txt.line[deln0].appendChild(newnode);
						deln2 += 1;
					}
				deln1 += 1
			}
		deln0 += 1;
	}
Et pour récuperer les attributs du noeud parent (pas de souci ici, ça fonctionne):
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
 
if(node2.@FACE.length())
	{}
else
	{
		trace("No face --> get previous = " + node1.attribute("FACE"));
		node2.@FACE = node1.attribute("FACE");
	}
if(node2.@SIZE.length())
	{}
else
	{
		trace("No size --> get previous = " + node1.attribute("SIZE"));
		node2.@SIZE = node1.attribute("SIZE");	
	}
if(node2.@COLOR.length())
	{}
else
	{
		trace("No color --> get previous = " + node1.attribute("COLOR"));
		node2.@COLOR = node1.attribute("COLOR");
	}
Problème : je crois que le Flex n'analyse pas les noeuds s'il n'y a pas de texte à l'interieur même s'il y a des childnodes dedans.
A la fin je devrai obtenir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
<txts>
  <line>
    <FONT FACE="Verdana" SIZE="10" COLOR="#FF0000">a</FONT>
    <FONT COLOR="#0000FF">b</FONT>
    <FONT COLOR="#996600">c</FONT>
    <FONT COLOR="#FF00CC">d</FONT>
  </line>
</txts>
Si quelqu'un pouvait m'aider ça serait génial =)
Et surtout s'il y a un moyen de faire ça sans des boucles dans des boucles ... XD