ADAPTER AUTOMATIQUEMENT LA TAILLE DE POLICE SELON LES DIMENSIONS D'UN CHAMP TEXT
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 2013
-
19 juin 2009 à 15:40
ths_otra
Messages postés5Date d'inscriptionlundi 21 juin 2004StatutMembreDernière intervention29 juin 2009
-
29 juin 2009 à 12:12
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
ths_otra
Messages postés5Date d'inscriptionlundi 21 juin 2004StatutMembreDernière intervention29 juin 2009 29 juin 2009 à 12:01
Salut, pas mal la correction de source ... par contre j'essaie de l'adapter à un champ multi-ligne (wordwrap=true ) et c'est pas évident. mission: Ecrire le texte le plus gros possible, centré sur le stage et multi-ligne !
top30
Messages postés1158Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention 6 août 2010 26 juin 2009 à 20:27
Ben t'es pas doué !!!!
var pageWidth :Number = 500 ;
var pageHeight :Number= 200 ; // NOUVEAU !!!
var field :TextField = new TextField();
field.defaultTextFormat = new TextFormat("_sans",24,0xFF6600) ;
field.autoSize= "left" ;
field.text = "TOP30-HopeMultimedias.com" ;
field.antiAliasType = "advanced" ;
trace( field.width ) ;// Affiche 324
addChild(field) ;
var scale :Number = pageWidth/field.width ;field.scaleX field.scaleY scale ;
29 juin 2009 à 12:12
var largeur :Number = stage.stageWidth ;
var hauteur :Number= stage.stageHeight ;
var field :TextField = new TextField();
field.defaultTextFormat = new TextFormat("_sans",10,0xFF6600) ;
field.autoSize= "left" ;
field.text = "debut_ _fin" ;
field.wordWrap=true
field.height=200
field.width=200
field.antiAliasType = "advanced" ;
trace( field.width ) ;// Affiche 324
addChild(field) ;
var xScale :Number = largeur/(field.textWidth) ;
var yScale :Number = hauteur/(field.textHeight);
field.scaleX = xScale
field.scaleY = yScale ;
field.y= (hauteur-field.height)/2 ;
field.x= (largeur-field.width)/2 ;
trace( field.width ) ;
29 juin 2009 à 12:01
26 juin 2009 à 20:27
var pageWidth :Number = 500 ;
var pageHeight :Number= 200 ; // NOUVEAU !!!
var field :TextField = new TextField();
field.defaultTextFormat = new TextFormat("_sans",24,0xFF6600) ;
field.autoSize= "left" ;
field.text = "TOP30-HopeMultimedias.com" ;
field.antiAliasType = "advanced" ;
trace( field.width ) ;// Affiche 324
addChild(field) ;
var scale :Number = pageWidth/field.width ;field.scaleX field.scaleY scale ;
field.y= (pageHeight-field.height)/2 ; // ET VOILA !!!!
trace( field.width ) ;// Affiche 500.15
22 juin 2009 à 20:22
22 juin 2009 à 11:52
19 juin 2009 à 19:46
Une solution:
public function Test()
:void {
var pageWidth :Number = 500 ;
var field :TextField = new TextField();
field.defaultTextFormat = new TextFormat("_sans",24,0xFF6600) ;
field.autoSize= "left" ;
field.text = "TOP30-HopeMultimedias.com" ;
field.antiAliasType = "advanced" ;
trace( field.width ) ;// Affiche 324
addChild(field) ;
var scale :Number = pageWidth/field.width ;field.scaleX field.scaleY scale ;
trace( field.width ) ;// Affiche 500.15
}
19 juin 2009 à 19:12
Il faut justement trouver une petite formule permettant de définir le scaleX en fonction de son width actuel (avec autoSize, bien entendu).
Peg'
19 juin 2009 à 18:23
champTexte.width= largeurVoulue ;
champTexte.scaleY= champTexte.scaleX ;
.. et voila !
Beaucoup de temps, beaucoup de code, beaucoup de ressource pour quelque chose simple à résoudre si l'on prend le temps de refléchir au problème.
19 juin 2009 à 15:40
Comme cela tu n'aurais pas à modifier le textFormat ...
Peg'