Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Passer d'un textFormat ? l'autre dans un bloc texte

1 réponse
Avatar
DJ-Paul
Bonjour, partant de quelques vieux messages du forum, j'ai commenc? ? ?laborer
un actionscript.

Je suis sur FlashMX2004 / osX10.3

Voil?, je pars sur un exemple pr?cis ce sera plus parlant.

Admettons que l'utilisateur va rentrer des informations (son num?ro de t?l et
de fax dans l'exemple) et que je souhaite avoir au final un r?sultat de ce type

[b]Tel[/b] 00 00 00 00 00
[b]Fax[/b] 00 00 00 00 00

En y ajoutant tout de m?me que (je ne epux pas le simuler dans le forum donc
je le d?cris) le texte doit ?tre dans une typo bien pr?cise, une couleur bien
pr?cise, ferr? ? droite, et avec toutes les glyphes n?cessaires int?gr?es dans
le bloc.

Bon, pour l'instant, l'actionscript que j'ai r?ussi ? faire ?a donne ceci

[i]// d?finir les textFormat (genre de feuille de style)
var Gras:TextFormat = new TextFormat();
Gras.font = "HelveticaRegular";
var Maig:TextFormat = new TextFormat();
Maig.font = "HelveticaLight";

//cr?er un bloc texte
this.createTextField("MonBloc", this.getNextHighestDepth(), 0, 0, 100, 100);
my_txt.multiline = false ;
my_txt.wordWrap = true ;

// remplir le bloc texte avec les ?l?ments fixes et les ?l?ments renseign?s
par l'utilisateur
// et d?finir des points de coupe "var" entre chaque ?l?ment
MonBloc.text = "Tel " ;
var TT:Number = MonBloc.length;
MonBloc.text += c_telephone;
var TN:Number = MonBloc.length;
MonBloc.text += "\rFax " ;
var FF:Number = MonBloc.length;
MonBloc.text += c_fax;
var FN:Number = MonBloc.length;

// appliquer les textFormat entre chaque point de coupe
MonBloc.setTextFormat(0, TT, Gras);
MonBloc.setTextFormat(TT, TN, Maig);
MonBloc.setTextFormat(TN, FF, Gras);
MonBloc.setTextFormat(FF, FN, Maig);
[/i]

Et ?a marche, il int?gre bien les ?l?ments saisis en mettant du gras sur les
mots "Tel" et "Fax".
Si vous pensiez dire qu'il suffisait d'appliquer du gras sur ces mots sans
pour autant passer par la font, je r?ponds non, car je souhaite utiliser la
font grasse et non pas graisser la font (c'est une nuance tr?s importante).
Mais ce qui m'ennuie, c'est que je suis oblig? d'utiliser l'op?ratuer
this.createTextField alors que ?a ne m'arrange pas du tout.
J'ai essay? de cr?er un bloc texte dynamique avec dans le champ Var le nom de
variable employ? dans l'actionscript ci-dessus (MonBloc), mais ?a ne marche
pas, il ne se remplit pas. ?a ne marche que quand j'utilise l'op?rateur
this.createTextField. Peut-?tre qu'il me manque un truc pour qu'il accepte de
remplir (MonBloc.text) un bloc d?j? pr?sent sans le cr?er.

Pourquoi je veux utiliser un bloc de texte d?j? d?fini, me demanderez-vous.
Comme vous l'avez lu, dans mes textFormat, je ne d?fini que la police, il
faudrait donc que je d?finisse aussi dedans le corps (.size =), la couleur du
texte (.color =), le fait qu'il est ferr? ? droite (comment faire ?), les
plages de glyphes ? importer (comment faire ?), etc.
Or cela rend l'op?ration fastidieuse. Imaginons que j'ai un bloc tel et fax
avec le texte rouge ? 6 pts ? gauche, puis un bloc nom, pr?nom avec le texte
gris ? 8 pts centr? et enfin un bloc adresse avec les texte rouge ? 9 points ?
droite? Chacun comportant la font Regular et Light ?a m'oblige ? d?finir 6
textFormat tr?s d?taill?, or je voudrais pourvoir appliquer cela dans un bloc
texte d?j? cr??, dans lequel je d?fini la couleur du texte, son corps, son
alignement, les glyphes et tout ?a. Dans ce cas, je pourrais simplement cr?er 2
textFOrmat (Light et Regular) et les appliquer pour faire changer la font en
gardant les r?glages (couleur, corps, alignement, etc.) du bloc.

1 réponse

Avatar
DJ-Paul
Comme je suis pas rat, je vous donne [url=http://forum.macbidouille.com/index.php?s=&showtopic5615&view=findpost&p45797]le lien vers la solution[/url]