[Flash MX] probleme texte dynamique + XML + position

probleme texte dynamique + XML + position [Flash MX] - Web design - Graphisme

Marsh Posté le 13-01-2004 à 16:46:33    

Hello
 
Ce que je veut faire:
 
Je veut créer des calques dynamics en parsant du XML dans Flash, je
m'explique:
 
Imaginons on le xml suivant:
 

Code :
  1. <bordel>
  2.     <montexte>
  3.         <p>Salut je suis gentil bonhomme</p>
  4.         <p>Encore moi <calque texte="yeah">ici</calque></p>
  5.     </montexte>
  6. </bordel>


 
Ce que je veut, c'est que flash parse ce xml et fabrique un zone de texte (dans un movie clip) et qu'en passant sur le texte "ici" (entouré du tag <calque> dans le xml), on voit en roll-over le texte "yeah" (dans un calque donc).
 
en gros, c'est comme la lib JS overlib mais en flash - pour ceux qui connaissent -
 
Je sais tout faire, parser le XML, détecter le tag <calque>, fabriquer la zone de texte, le movie clip en action script et créer le bouton sur lequel on va roller pour afficher "yeah".  
 
Le gros problème revient à positionner ce putain de bouton juste au dessus du texte "ici" !
J'ai pas trop d'idée sur comment le faire uniquement en action script.
 
Voili voila
merci d'avance pour ceux qui ont des idées !

Reply

Marsh Posté le 13-01-2004 à 16:46:33   

Reply

Marsh Posté le 13-01-2004 à 19:55:41    

euh...
 
hm...
bon c pas dit que ça marche
mais si ça marche ça serait rigolo  ;)  
 
Il suffit de compter les caractères que tu as avant ta balise puis de faire une rapide conversion sachant que :
 
taille de ton texte = somme des tailles de chaque lettre - (nbre de lettres-1)*coeff
où coeff varie selon ta typo, ton corps etc... (entre 2 et 5)mais tu dois pouvoir le trouver en faisant quelques essais (c'est de toute façon quasi linéaire).
Après tu peux toujours t'assurer une marge de sécurité en faisant un bouton plus gros que prévu mais tu sauras où le placer.
 
Bon ça veut dire aussi que tu dois stocker la taille de chaque lettre dans un tableau et que tu dois d'abord les mesurer (mais ça ça prend 5 min).
 
hm... pas testé jusqu'au bout mais je le sens bien.
 
Good luck
 
 
 

Reply

Sujets relatifs:

Leave a Replay

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