TextWidth ou textHeight à 0 (MX 2004, AS2.0)

Résolu
nowaday69 Messages postés 17 Date d'inscription mardi 18 octobre 2005 Statut Membre Dernière intervention 20 novembre 2005 - 20 nov. 2005 à 02:13
nowaday69 Messages postés 17 Date d'inscription mardi 18 octobre 2005 Statut Membre Dernière intervention 20 novembre 2005 - 20 nov. 2005 à 20:31
Salut tout le monde.



- Je pose un textField dynamique sur ma page.

- en script, je modifie quelques propriétés style _text, ou encore
_visible à true, rien de spécal, mais, et surtout, embedFont à true
(pour utiliser _alpha), en ayant pris soins de déclarer tous les
caractère nécessaires en "contour de police intégrés".

-> Mon texte ne s'affiche pas.

Je trace les autres propriétés et, keske je m'appeçois-je?.. j'ai, soit
textWidth, soit textHeight à 0, parfoit même les deux, quelque soit le
contenu de mon texte

Même si je les force à une valeur plus cohérente, rien à faire, toujours à 0 à l'execution et pas de texte.



Alors, un moment j'ai laissé tomber pour poursuivre sur le reste de mon
dev et puis tout à coup, je ne sais pas pourquoi, hop, elles reprennent
des valeurs cohérentes et mon texte s'affiche!?



Est-ce que quelqu'un a déjà eu ça?



Au cas où, merci d'avance....






Imaginez que votre code peut être lu par un serial killer cannibal : soyez clair avec lui.

7 réponses

nowaday69 Messages postés 17 Date d'inscription mardi 18 octobre 2005 Statut Membre Dernière intervention 20 novembre 2005
20 nov. 2005 à 19:33
Bon...

Après (presque) un week end passé, voilà le problème :

1) Si on veut afficher un TextField avec _alpha, _rotation ou _scale, en créant le textField sous l'éditeur Flash, il faut :
- déclarer les caractères qu'on utilise (contours intégrés, bouton Caractère... dans la fen Propriétés)
- ET, bien que la doc dise que ca ne sert à rien, cliquer sur le bouton "antialias" de la fen Propriétés (fallait le savoir...)
- faire .embedFonts = true et ce, toujours en dernier! (fallait le savoir aussi)

2) Si on veut afficher un TextField avec _alpha, _rotation ou _scale, en le créant à partir d'un script (MovieClip.createTextField()), il faut :
- créer un TextFormat avec une font, une taille, du gras/italique (ou non) et l'affecter à notre TextField (.setTextFormat)
- créer un autre champs de texte d'exactement même font, taille, gras/italique (voire plusieurs) sous l'éditeur Flash, éventuellement dans un endroit caché, sur le(s)quel(s) on aura déclaré les caractères nécessaires en contours intégrés (comme ci-dessus)
- faire .embedFonts = true, toujours en dernier.

3) Dans ces deux cas, si on veut utiliser une police spécifique et être certain qu'elle apparaisse correctement, même si le client ne l'a pas installé, il faut en plus de tout ça ajouter un symbole de police dans la Bibliothèque (voir la doc). Il faut en ajouter autant qu'on a de combinaison de taille/graisse/italique. Heureusement, Flash réutilise la meme police pour toute les combinaisons et la taille du SWF n'augmente qu'une fois.

Autres précisions : les propriétés _quality & _hightquality de TextField affectent l'ensemble du SWF et non uniquement notre occurence de TextField (bonjour la norme)

Enfin bref, j'ose espérer avoir à peu près synthétiser la chose...

Hope it helps...

Cela dit, on ne m'enlevera pas de l'idée que les développeurs de chez Macromédia sont soit incompétents et bordéliques (mais j'en doute), soit très tordus dans leur tête (j'en doute aussi), soit ils ont une dent contre nous (l'un de nous les aurait-il cocufiés?!). Et vu mes doutes, ce doit être la 3ème solution... Alors, celui qui se tape les femmes des developpeurs de Macromédia, qu'il le dise!!!


Imaginez que votre code peut être lu par un serial killer cannibal : soyez clair avec lui.
3
atchoumdu51 Messages postés 194 Date d'inscription jeudi 1 janvier 2004 Statut Membre Dernière intervention 16 juillet 2007 1
20 nov. 2005 à 09:24
Bonjour

Regarde dans l'aide mais textWidth et textHeight te retournent la hauteur et la largeur du texte...ca te confirme bien que le textField est vide.Pour récupérer sa hauteur c'est _height et pour la largeur _width
Et pour modifier le texte d'un textField utilise text sans underscore. D'ailleurs en regardant _text ne change pas de couleur dans flash et ne retourne rien dans l'aide alors que text si

++
0
nowaday69 Messages postés 17 Date d'inscription mardi 18 octobre 2005 Statut Membre Dernière intervention 20 novembre 2005
20 nov. 2005 à 10:37
Hum, oui...

Je te promets que dans mon code je n'ai pas fais d'erreur à ce niveau là... J'ai simplement tapé un peu vite ici, dsl. Non, mon probleme ne vient pas de là...

D'autre part, je ne cherche à connaître la hauteur/largeur de mon texte (m'enfou).
Mon principal problème est que mon texte ne s'affiche pas alors que la prop "text" (et non) "_text" ), contient bien quelque chose (et que toutes les autres prop sont ok)... J'ai simplement constaté que textWidth et/ou textHeight sont parfoit à 0, ce qui me paraît anormal.

Ce qui est d'autant plus anormal c'est que quand je les set à une autre valeur, elles restent à 0.

...Et ce qui me paraît encore bien plus anormal c'est que le problème est aléatoire... (d'où la raison pour laquelle j'ai posté dans cette rubrique....)


Imaginez que votre code peut être lu par un serial killer cannibal : soyez clair avec lui.
0
nowaday69 Messages postés 17 Date d'inscription mardi 18 octobre 2005 Statut Membre Dernière intervention 20 novembre 2005
20 nov. 2005 à 10:43
...Globalement je contaste des pb très aléatoires avec Flash (c.f. mes post antérieurs, dans lesquels je disais que je perdais des actifs, sans aucune raison).


Donc, en fait j'ai une autre question un peu plus générale :

Est-ce que Fash atteint ses limites avec :
- 31 fichiers *.as externes
- 5 classes "home made"
- 8 composants "home made"
- 8100 lignes de codes
- 50Kb de code compilé

??!!

(j'espere pas quand même!?)


Imaginez que votre code peut être lu par un serial killer cannibal : soyez clair avec lui.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
atchoumdu51 Messages postés 194 Date d'inscription jeudi 1 janvier 2004 Statut Membre Dernière intervention 16 juillet 2007 1
20 nov. 2005 à 13:08
La je ne peut pas te dire si il y a une limite je n'ai encore pas réalisé d'aussi gros projets je décompose tout...
Par contre ce sont des propriétés, tu ne peut que les lire pas les modifier. En effet c'est bizarre quand même...et tu as même textWidth et textHeight a 0 quand il y a du texte? Si tu n'as pas de texte c'est normal qu'ils soient a 0 mais si tu as du texte en effet il ya un probleme et le plus étonnant est que ca fonctionne par moments...
0
atchoumdu51 Messages postés 194 Date d'inscription jeudi 1 janvier 2004 Statut Membre Dernière intervention 16 juillet 2007 1
20 nov. 2005 à 20:17
En tout cas c'est pas moi! Merci de nous rendre ce sur quoi tu as travaillé c'est toujours bon a lire. Reste a comprendre pourquoi donner les propriétés dans un ordre plutot qu'un autre!
++
0
nowaday69 Messages postés 17 Date d'inscription mardi 18 octobre 2005 Statut Membre Dernière intervention 20 novembre 2005
20 nov. 2005 à 20:31
En fait, certainement parce que le ".embedFonts = true" ne doit pas
être si annodin que ça, l'anti-alias (qui est en soi généralement une
belle usine à gaz), doit être calculé à ce moment là et les algos de
manipulation de texte doivent y être intégrés.



Si après on fait un "._rotation = 45" par ex, il doit certainement tout ré-initialiser.



Bon, c'est pas bien grave.... MAIS POURRAIENT LE DIRE NON?

(cela dit vu le temps de ce week end, je n'ai pas perdu grand chose... )







Imaginez que votre code peut être lu par un serial killer cannibal : soyez clair avec lui.
0
Rejoignez-nous