Imaginons que nous ayons un texte (issu d'un xml par exemple) contenant des balises html du style <b> et </b> et des codes de ce genre : &apos pour l'apostrophe et : & pour le l'ampersand.
Si nous décodions avec la fonction (flash my_text.html=true) nous perdrions ceux que nous désirons gérer comme les <b> et </b> !!
Source / Exemple :
Voici un fonction qui décode les (mots) de votre choix en lui passant en paramètre le nom du champ texte sur lesquel procéder.
Champ texte en effet, puisqu'en AS2 nous n'avons à disposition que l'instruction "ReplaceText".
- Concernant la recherche d'occurences et son remplacement en AS3, je vous renvoie ici :
http://livedocs.adobe.com/flash/9.0_fr/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts_bak&file=00000084.html
this.createTextField("my_txt2", this.getNextHighestDepth(), 8, 150, 320, 22);
my_txt2.autoSize = true;
my_txt2.text = "'|à|'|â|'|?|,<b>machin</b>,|%|&|";
Decode_carrets(my_txt2);
my_txt.text = "'|à|'|â|'|?|,<b>machin</b>,|%|&|";
Decode_carrets(my_txt);
//------------------------------------------------------------------------------------
function Decode_carrets(chaine){
//Tableau contenant le code à rechercher et celui qui sera son remplaçant.
var Tab_code = new Array ( ["'", "'"],
["&" , "&"],
[",<" , "<"],
[">," , ">"]
);
for(i=0; i<Tab_code.length; i++){//recherche avec tous les codes un par un
var masq : String = new String(Tab_code[i][0]);
var replace : String = new String(Tab_code[i][1]);
var len_masq : Number = Tab_code[i][0].length;
var pos_deb : Number = chaine.text.indexOf(masq);
while (pos_deb >-1){ //recherche du même code sur la ligne entière
chaine.replaceText(pos_deb, pos_deb+len_masq, replace);
var pos_deb : Number = chaine.text.indexOf(masq);
}//while
}//for
}
//------------------------------------------------------------------------------------
Conclusion :
-----------------------------------------------------
|-- !! ATTENTION !! source compilée avec Flash 9 ---|
-----------------------------------------------------
Voir le fla pour la démo.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.