bonjour,
pourquoi lorsque que je fait un nouveau createTextField seul le dernier affichage marche????
j'ai en paremetre cette chaine,
chaine = "mot1 mot2 mot3 mot4 mot5 mot6 mot7 mot8 mot9 mot10 mot11"
je voudrai en resultat ceci
mot1 mot2 mot3 mot4 mot5
mot6 mot7 mot8 mot9 mot10
mot11
centré sur le clip onglet
or j'ai juste "mot11" qui s'affiche au bon endroit maisles autres n'apparaissent pas!
voila ma fonction
function Resize_onglet(chaine,onglet_mc)
{
texte=createTextField("onglet",1,onglet_mc._x,onglet_mc._y,100,50);
//textFormat pour définir la police, couleur, gras,... qui auront été lu dans xml
texte.autoSize=true;
texte.text = chaine;
//si la chaine rentre sans découpe
if (texte.textWidth < onglet_mc._width)
{
// on centre le texte
texte._y = onglet_mc._y + onglet_mc._height / 2 - texte.textHeight /2;
texte._x = onglet_mc._x + (onglet_mc._width - texte.textWidth)/2;
}
else //si la chaine ne rentre pas
{
//on découpe la chaine en un tableau de mot
words = chaine.split(" ");
i=0;
//tableau contenant une ligne à afficher (mieux que multiline car peut centrer
//comme on veut
var t:Array=new Array();
//indice de ce tab
indT=-1;
do{
t.push(createTextField("onglet"+indT+1,1,onglet_mc._x,onglet_mc._y+(indT+1)*30,100,50));
indT++;
t[indT].autoSize=true;
t[indT].multiline=false;
t[indT].text = words[i++];
while
(t[indT].textWidth < onglet_mc._width &&
i<words.length )
{
t[indT].text=t[indT].text+" "+words[i++];
}
//si la boucle s'est arreté parce qu'on a dépassé l'onglet
if (t[indT].textWidth > onglet_mc._width)
//alors on enleve le dernier mot
t[indT].text=t[indT].text.substr(0,t[indT].text.length -
words[--i].length - 1);
trace(" chaine actuelle :"+ t[indT].text);
}while(i<words.length);
//petite variable pour ne faire l'addition qu'une seule fois et non pas à chaque
//fois dans la boucle
bas_onglet_mc_y = onglet_mc._y + onglet_mc._height;
//maintenant, on centre les lignes comme on veut
for(i=0;i<t.length;++i)
{
pos_y = onglet_mc._height/2 - t.length * (t[i].textHeight+2) /2 ;
//t.length *
(t[i].textHeight+2) /2 => la hauteur de tout le bloc text avec
chaque ligne espacée de 2 pixel
//si le cadre
de texte est plus haut que l'onglet, on se positionne quand meme
//au début de l'onglet et on tronquera la fin
if(pos_y < 0)
pos_y = 0;
t[i]._y = onglet_mc._y + pos_y + + i*t[i].textHeight + 2;
//i*t[i].textHeight + 2 =>se positionner selon le numero de
ligne
t[i]._x = onglet_mc._x + (onglet_mc._width - t[i].textWidth)/2;
//vérifie que l'on ne sort pas de l'onglet
if (t[i]._y + t[i].textHeight > bas_onglet_mc_y)
t[i].visible=false;
}
}
}
merci
lily