Sujets sur : trace
Cours ActionScript 3 ‘trace’
Comment arrondir un nombre en 2 lignes de code avec ActionScript / Flash ?
Commentaires fermés sur Comment arrondir un nombre en 2 lignes de code avec ActionScript / Flash ?

Pour continuer à répondre à vos nombreuses questions suite à la Formation AS3 Facile,
Voici une question qui revient très souvent de la part des Développeurs :
- Comment arrondir des nombres en ActionScript / Flash ?
Arrondir un Nombre
Nous allons tout simplement utiliser la fonction d’arrondi par défaut de la classe Math de Flash.
Et nous allons la combiner à l’utilisation des puissances de 10 pour obtenir le nombre de décimales souhaitées.
Tout se résumé à seulement 2 lignes de code ! (voir 1 seule)
[codesyntax lang= »actionscript3″ title= »Rounding » bookmarkname= »Rounding »]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /** * Arrondi un nombre avec x décimales après la virgule. * * @param nValue : nombre à arrondir * @param nDecimal : nombre de décimales (par défaut pas d'arrondi, sans décimal) * @return : nombre arrondi */ private function mathRounding( nValue:Number, nDecimal:int=0) : Number { // Math.pow pour la puissance de 10 - puissance de 10 en fonction du nombre de décimales souhaitées var nMult:Number = Math.pow(10, nDecimal); return Math.round( nValue * nMult ) / nMult; } |
[/codesyntax]
La 1ère ligne calcule la puissance de 10 nécessaire.
Sur la 2ème ligne, il y a plusieurs calculs à la suite :
- Premièrement, le nombre est multiplié par la puissance de 10 pour décaler la virgule.
- Deuxième le nombre est arrondi avec Math.round().
- Dernièrement, la puissance de 10 divise le nombre pour mettre la virgule au bon endroit et afficher les décimales.
Démonstration Arrondir un Nombre
Appuyez sur le bouton « c’est parti » pour lancer l’arrondi de nombre aléatoire.
1 | http://e6msyji6epr.exactdn.com/wp-content/uploads/2012/07/MathRounding.swf |
Télécharger le code source Arrondir un Nombre
L’application de démonstration « Arrondir un Nombre » met en pratique les cours ActionScript ci-dessous :
- Une classe pour améliorer la Sortie trace de Flash.
- Une classe MathUtils pour utiliser des nombres aléatoires en Flash.
Posez vos questions ActionScript / Flash ?
Posez-moi dès maintenant vos questions ActionScript / Flash, et je vous répondrai dans les prochains tutoriels.
Classe de Sortie Debug Ultra Simple en ActionScript 3
Commentaires fermés sur Classe de Sortie Debug Ultra Simple en ActionScript 3

Sur le site de Grant Skinner, j’ai trouvé une classe de sortie debug ultra simple et pratique.
Pour afficher rapidement des valeurs, comme un trace, cette petite classe utilitaire est un bijou !
Utilisation de Out.as
Pour l’utiliser, c’est facile, il suffit de mettre la classe Out.as dans votre répertoire source (ou src).
Ensuite, il reste à affecter un champ texte de sortie à Out.textfield.
[codesyntax lang= »actionscript3″ title= »Out.as » bookmarkname= »Out.as »]
1 | Out.textField = oTextDebug; |
[/codesyntax]
Vous pouvez également spécifier le nombre maximum de caractères à conserver.
Ainsi, les anciennes trace seront automatiquement effacées au fur et à mesure de l’ajout des nouveaux.
[codesyntax lang= »actionscript3″ title= »Out.as » bookmarkname= »Out.as »]
1 | Out.maxLength = 1333; |
[/codesyntax]
Ensuite, de n’importe endroit de votre application, vous pouvez appeler Out.trace (valeur) pour effectuer un trace.
Cela affiche la valeur dans votre TextField en l’ajoutant à la fin de votre champ de texte.
Vous pouvez faire défiler le champ texte à la fin pour afficher le dernier trace.
[codesyntax lang= »actionscript3″ title= »Out.as » bookmarkname= »Out.as »]
1 2 | Out.trace("Bonjour"); Out.trace("count:", count);// Possibilité de transmettre plusieurs paramètres |
[/codesyntax]
Adapter Out.as à vos projets
Enfin, vous pouvez personnaliser le trace en fonction de votre projet.
Il suffit de remplacer Out.handler par votre propre fonction.
Par exemple, pour effectuer un format sur votre texte de trace, modifier sa couleur, ajouter des informations supplémentaires…
Vous pouvez ajouter une combinaison de touches (ctrl+d) pour afficher / masquer le trace.
Le code ci-dessous permet d’afficher le trace, uniquement si le premier paramètre est 1.
Ainsi, vous pouvez utiliser une variable, pour activer ou non la sortie trace sur Out.as.
[codesyntax lang= »actionscript3″ title= »Out.as » bookmarkname= »Out.as »]
1 2 3 4 5 6 7 8 | function log(...rest:Array):Boolean { trace("logging : "+rest.join(",")); // ... etc. // écrit dans le TextField seulement si le premier paramètre (ex. priorité debug) est > 1 return rest[0] > 1; // renvoie false pour empêcher l'écriture dans Out.textField } Out.handler = log; |
[/codesyntax]
Exemple de personnalisation de Out.as
J’ai ajouté sur Out.as la gestion de l’appuie simultanée sur les touches Ctrl et D pour afficher ou masquer le TextField de Debug.
1 | http://e6msyji6epr.exactdn.com/wp-content/uploads/2011/11/debug-simple.swf |
Télécharger le code source de Out.as
Dans le fichier ci-dessous, le code source de l’exemple avec la classe Out.as modifiée.
Télécharger “Out.as Debug simple” ex-out-debug-simple.zip – Téléchargé 828 fois – 88,25 KoSources : Grant Skinner
Démarrer avec ActionScript 3 : la classe Main
Commentaires fermés sur Démarrer avec ActionScript 3 : la classe Main
Dans cette vidéo, je vous propose de découvrir la classe de base à utiliser dans vos projets flash : la classe Main.
Celle-ci contient plusieurs fonctionnalités prêtes pour être utiliser dans vos classes ActionScript.
Voici le résultat dans un swf :
1 | http://e6msyji6epr.exactdn.com/wp-content/uploads/2011/03/main-base.swf |
Téléchargez le code source complet de l’exemple :
Télécharger “Classe Main de base” ex-main-base.zip – Téléchargé 833 fois – 23,90 KoTéléchargez De MonsterDebugger pour le debug de vos applications flash : le fameux trace amélioré !
Et vous, quelle classe Main utilisez-vous pour démarrer vos swf ?
Postez votre code AS3 dans les commentaires, je suis curieux de voir votre code.
[codesyntax lang= »actionscript3″ title= »La classe Main » bookmarkname= »La classe Main »]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | package { import nl.demonsters.debugger.MonsterDebugger; import flash.text.TextFormat; import flash.text.TextField; import flash.events.Event; import flash.display.Sprite; public class Main extends Sprite { private var debugger:MonsterDebugger; public function Main() { // attend la fin de l'initialisation de la scène this.addEventListener(Event.ADDED_TO_STAGE, onReady, false, 0, true); } /** * Démarrage de votre application. * */ protected function onReady(event : Event) : void { this.removeEventListener(Event.ADDED_TO_STAGE, onReady); // Init De MonsterDebugger debugger = new MonsterDebugger(this); // message de debug MonsterDebugger.trace(this, "Start Application"); // le code de notre application var oText:TextField = new TextField(); oText.width = stage.stageWidth; oText.autoSize = 'center'; oText.text = "Bienvenue sur ActionScript-Facile"; oText.y = 150; var tFormat:TextFormat = new TextFormat(); tFormat.font = "Arial"; tFormat.size = 20; tFormat.color = Math.random() * 0X00FFFFFF; oText.setTextFormat(tFormat); addChild( oText ); MonsterDebugger.trace(this, oText);// affichage dans le debug de notre objet oText } } } |
[/codesyntax]