Forums Développement Multimédia

Aller au contenu

Taille d'un champ de texte

PAO Flash

5 réponses à ce sujet

#1 bricoqe

  • Members
  • PipPipPipPipPipPipPipPip
  • 761 messages

Posté 01 August 2007 - 23:23 PM

J'ai un petit problème avec mes champs de texte, j'ai besoin de leur hauteur mais celle-ci n'est jamais la bonne, il y a toujours un petit décalage qui en plus augmente plus le champ est haut. icon_confused.gif
En partant de ceci :

Action Script


var format:TextFormat=new TextFormat();
format.font="Courier New";
format.size=12;
format.color=0x000000;
format.align="left";
format.leading=6;

this.createTextField("test",0,0,0,100,16.9);
test.text="M";
test.multiline=1;
test.wordWrap=1;
test.embedFonts=1;
test.selectable=false;
test.autoSize="left";

this.test.setTextFormat(format);

trace(test._height)

En principe avec ce format un champ d'une ligne fait 16.9 px, là j'obtiens 23.55 px, bien sûr on pense tout de suite à l'interligne de 6 (même s'il ne devrait pas y en avoir si le texte tient sur une seule ligne) mais même en l'enlevant ça fait 17.55 px. icon_eek.gif
Avec 2 lignes (sur un autre swf qui charge du xml) j'obtiens 43.1 px au lieu de 35.8 donc le décalage augmente proportionnellement. icon_evil.gif

En tapant directement un texte sur la scène les valeurs sont bonnes, en tout cas c'est là-dessus que je me base, car il y a aussi une autre méthode qui consiste à faire '16.9*nombre de lignes + (nombre de lignes-1)*(6-4.05)' (4 étant l'interligne qui vaut 0 dans ce cas, à 0.1 près), et par cette méthode j'obtiens pratiquement les mêmes valeurs qu'en tapant le texte sur la scène (à 0.05 px prés).

Bref icon_mrgreen.gif , tout ça pour dire qu'en entrant le texte dynamiquement dans le champ de texte sa valeur _height n'est pas vraiment fiable, donc j'aimerai bien savoir à quoi correspond ce décalage, celui de 0.65 px sur une ligne par exemple icon_question.gif

Merci.

#2 tlecoz

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 3486 messages

Posté 02 August 2007 - 00:56 AM

n'utilise pas _width et _height, utilise textWidth et textHeight !

#3 bricoqe

  • Members
  • PipPipPipPipPipPipPipPip
  • 761 messages

Posté 02 August 2007 - 10:00 AM

Le problème reste le même, ça ne fait qu'enlever les gouttières supérieure et inférieure, soit en gros 4 px puisque ça varie aussi. icon_confused.gif
C'est lié à la vétusté de Flash 7 ou ça a été amélioré sur les 8 et 9 ?

#4 bricoqe

  • Members
  • PipPipPipPipPipPipPipPip
  • 761 messages

Posté 03 August 2007 - 00:04 AM

Illustration par l'exemple, ce swf charge un xml qui contient deux chaînes, une de 3 lignes et l'autre de 9, chacune est placée à côté de son équivalent en dur, on voit bien le décalage qui s'accroît avec le nombre de lignes. icon_confused.gif

Miniature(s) jointe(s)

  • Image attachée: Test.jpg

Fichier(s) joint(s)

  • Fichier joint  Test.zip   40.41 Ko   3 téléchargement(s)


#5 tlecoz

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 3486 messages

Posté 03 August 2007 - 01:29 AM

Hmmmmmmmm.....Tu utilise un TextFormat quelconque ?

Si non, as tu essayé de creer un TextFormat qui correspond ,en tout et pour tout, à celui de la barre propriété de flash. Theoriquement, par defaut les valeurs devraient etre identiques, mais apres avoir vu la piece jointe, j'ai des doutes...

Si ca ne marche toujours pas, et que tu as acheté flash, vas faire un procés à Adobe, et au passage, parle leur du contour des rectangle arrondi qui est degueulasse toute versions confondus icon_twisted.gif

#6 bricoqe

  • Members
  • PipPipPipPipPipPipPipPip
  • 761 messages

Posté 03 August 2007 - 12:14 PM

Le format est le même, à part certains paramètres qu'on ne peut pas définir dans les propriétés comme wordwrap, multiline et autosize.

Action Script


format.font="Courier New";
format.size=12;
format.color=0x000000;
format.align="left";
format.leading=6;

this[champ].background=1;
this[champ].backgroundColor=0xFF0000;
this[champ].multiline=1;
this[champ].wordWrap=1;
this[champ].embedFonts=1;
this[champ].selectable=false;
this[champ].autoSize="left";
this[champ].setTextFormat(format);

Zéro téléchargements, ça n'a pas l'air de passionner les foules. icon_mrgreen.gif

Avec le backgroundColor je m'aperçois que l'espace entre la limite basse du champ de texte et le dernier caractère est toujours le même (c'est déjà ça icon_razz.gif), donc ça devrait aller, même si je ne sait pas à quoi correspond ce satané 0,65 px qui se multiplie tout seul. icon_evil.gif
Merci quand même. icon_wink.gif



2 utilisateur(s) li(sen)t ce sujet

0 membre(s), 2 invité(s), 0 utilisateur(s) anonyme(s)