richtext avec embeded fonts et setTextFormat...

richtext avec embeded fonts et setTextFormat... - Flash/ActionScript - Programmation

Marsh Posté le 26-02-2007 à 09:56:07    

Bonjour à tous,  
Petite question, j'ai l'impression qu'on ne peut pas mettre de texte enrichi dès qu'on utilise setTextFormat avec un champ HTML...
par exemple si j'encadre une chaine avec les balises <b></b> .. mon texte encadré disparait... seul la balise <u></u> a l'air de fonctionner
 
Y a til une astuce pour faire du texte enrichi avec ce procédé ?
 
Merci d'avance
 
Freed

Reply

Marsh Posté le 26-02-2007 à 09:56:07   

Reply

Marsh Posté le 26-02-2007 à 10:03:17    

T'aurai du code à montrer ?


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Marsh Posté le 26-02-2007 à 10:19:02    

oui...
exemple :
 

Code :
  1. var header_paragraphe_texte:TextFormat = new TextFormat();
  2.  header_paragraphe_texte.size = 12;
  3. header_paragraphe_texte.color = 0x333333;
  4.  header_paragraphe_texte.font = "Corporate regular";
  5. var thisTextField:TextField=_root.MCheader.MCparagraphe.texte;
  6. thisTextField.antiAliasType = "advanced";
  7. thisTextField.embedFonts = true;
  8. thisTextField.gridFitType = "pixel";
  9. thisTextField.multiline = true;
  10. thisTextField.setNewTextFormat(header_paragraphe_texte);
  11. thisTextField.htmlText = "L’impression d’évasion, de grands espaces est suscitée par un jeu de couleur, entre <b>ocre de terre et bleu de ciel</b>… Le fort contraste entre le bandeau supérieur irrégulier et accidenté et le reste de la page rectiligne pour le coté rassurant, rigoureux et structuré évoque à la fois la montagne, sa majesté et annonce le côté rassurant des murs d’escalade en salle et d’un encadrement professionnel. ";
  12. thisTextField.wordWrap = true;

Reply

Marsh Posté le 26-02-2007 à 10:41:42    

avec le htmlText, n'utilise pas les textFormat, mais les StyleSheet CSS.

Reply

Marsh Posté le 26-02-2007 à 10:42:11    

oui d'accord mais... pourrait-je utiliser les embed fonts ?

Reply

Marsh Posté le 26-02-2007 à 11:09:13    

et avec thisTextField.html = true; ?


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Marsh Posté le 26-02-2007 à 11:13:59    

Zedlefou a écrit :

et avec thisTextField.html = true; ?


marche pas mieux....

Reply

Marsh Posté le 26-02-2007 à 11:25:11    

j'ai essayé ça :
 

Code :
  1. var styleObj:TextField.StyleSheet = new TextField.StyleSheet();
  2.   styleObj.onLoad = function(success:Boolean) {
  3. var thisTextField:TextField=_root.MCheader.MCparagraphe.texte;
  4. thisTextField.antiAliasType = "advanced";
  5. thisTextField.embedFonts = true;
  6. thisTextField.gridFitType = "pixel";
  7. thisTextField.multiline = true;
  8. thisTextField.html = true;
  9. thisTextField.styleSheet=styleObj;
  10. thisTextField.htmlText = "<p class=\"header_paragraphe_texte\">L’impression d’évasion, <span class=\"bold\">de grands espaces est suscitée</span> par un jeu de couleur, entre ocre de terre et bleu de ciel… Le fort contraste entre le bandeau supérieur irrégulier et accidenté et le reste de la page rectiligne pour le coté rassurant, rigoureux et structuré évoque à la fois la montagne, sa majesté et annonce le côté rassurant des murs d’escalade en salle et d’un encadrement professionnel. </p>";
  11. thisTextField.wordWrap = true;
  12.  
  13.   }
  14.   styleObj.load("../e_habillage/css/stylesflash.css" );


Code :
  1. .header_paragraphe_texte{
  2. font-familly:"Corporate regular";
  3. color:#333333;
  4. font-size:12px;
  5. }
  6. .bold{
  7. font-familly:"Corporate bold";
  8. color:#333333;
  9. font-size:12px;
  10. }


 
Mais la seule chose qui a l'air de fonctionner c'est font-size... mon span quant à lui a l'air d'être ignoré... :(

Reply

Marsh Posté le 26-02-2007 à 15:50:43    

je crois que j'ai reussi en fait... simplement il faut prendre une fonte qui a un caractere gras bien démarqué... comme l'Arial ou le verdana... sinon ça ne se voit pas !
 
ce que j'ai fait :
 
j'ai exporté deux fois la typo : une fois en normal (nommé Verdana normal) et une fois en bold (avec la case "gras" cochée) (nommé Verdana Gras), apparement il faut faire attention à ne pas nommer la typo de la même façon que dans la liste des polices.
 
ensuite on choisi dans la liste des polices du champ texte : Verdana normal*
 
Me reste tout de même un soucy.. c'est le XML.. j'y ai mis des <span class="bold"> ... mais il me met un trou dans le texte :

Code :
  1. - <texte>
  2.   L'impression d'évasion,
  3.   <span class="bold">de grands espaces est suscitée</span>
  4.   par un jeu de couleur, entre ocre de terre et bleu de ciel… Le fort contraste entre le bandeau supérieur irrégulier et accidenté et le reste de la page rectiligne pour le coté rassurant, rigoureux et structuré évoque à la fois la montagne, sa majesté et annonce le côté rassurant des murs d'escalade en salle et d'un encadrement professionnel.
  5.   </texte>


 
alors que si je fais :  
 
thisTextField.htmlText = "<p class=\"header_paragraphe_texte\"><span class=\"bold\">"+_root['contentHeaderContentText'+n]+"</span></p>";
 
là ça marche... snif !

Reply

Marsh Posté le 26-02-2007 à 16:39:10    

bon.. j'ai résolu ce probleme... en fait je mettais :  
 
_root.contentXML[0].childNodes[1].lastChild pour afficher ma valeur du noeud...
 
j'ai essayé avec nodeValue mais il me retourne "null" ... donc j'ai mis _root.contentXML[0].childNodes[1].childNodes ... là ça s'affiche...
 
le probleme est qu'il me mets des virgules avant et apres mon span... why ?
 
http://www.freedfromparis.com/temp/xmlcss.jpg

Reply

Marsh Posté le 26-02-2007 à 16:39:10   

Reply

Marsh Posté le 26-02-2007 à 16:54:01    

bon d'accord !! j'ai trouvé tout seul ... (ne criez pas svouplé !!!!)
 
il fallait donc mettre :  
 
_root.contentXML[0].childNodes[1].firstChild.nodeValue;
 
ET
 
des CDATA dans le XML :
 
<texte><![CDATA[L'impression d'évasion, <span class="bold">de grands espaces est suscitée</span> par un jeu de couleur, entre ocre de terre et bleu de ciel… Le fort contraste entre le bandeau supérieur irrégulier et accidenté et le reste de la page rectiligne pour le coté rassurant, rigoureux et structuré évoque à la fois la montagne, sa majesté et annonce le côté rassurant des murs d'escalade en salle et d'un encadrement professionnel.]]></texte>
 
... maintenant ça marche !! hihi
 

Reply

Marsh Posté le 27-02-2007 à 10:50:15    

t'as tout bon, c nickel: html + CSS + intégration décli polices + CDATA.
 
pour info, dans Sepy, excellentissime éditeur de code actionscript, tu as une fonctionnalité 'XMLReader' dans le panneau latéral, qui te permet de charger un XML et de générer automatiquement les accès DOM au contenu des balises (firstChild.childNodes[9].childNodes[45]...), sans faire d'erreurs. et en plus il sauve par défaut en UTF-8.

Reply

Marsh Posté le 27-02-2007 à 10:55:46    

Merci pour le tuyau ! je vais essayer pour un futur projet !
en tous cas merci pour votre aide, maintenant les richtext n'ont plus de secret pour moi ! je trouvais que les textfields+textformat etaient une lacune pour flash, cette méthode ne me fait qu'apprécier davantage Flash+actionscript !!! Plus de limite !!! on peut quasiment tout faire ! et en plus avec les fonctionnalités d'antialisasing avancés de flash 8, c'est carrement boooooo !!!! :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed