Aujourd’hui une petite astuce pour tous les développeurs ActionScript avec Flash.
Cela fait un moment que je recherche un moyen d’afficher des message de debug dans la Sortie avec un maximum de détails.
Voici un petit script qui va vous changer la vie.
Simplement en ajoutant cette ligne :
Debug.log("foo", "bar");
Vous aurez automatiquement ce type de message :
[Class][method][line] foo bar
Installation
- Téléchargez le fichier Debug.as
- Copiez et collez le fichier Debug.as à la racine du projet, dans le même dossier que le fichier .fla
- Activez le mode debug dans Flash : Paramètres de publication > swf > Avancé > Activter debogage
- Utilisez le code suivant pour afficher le message de debug avancé
Utilisation
Debug.log("foo", "bar");
Code source
Debug.as code :
package { /** * Advanced trace method * * @author Benoît Freslon * @version 1.0 * @example Usage * * import Debug; * Debug.trace("foo", "bar"); * * output > [Class][Method][line] foo bar **/ public class Debug { static public function log(...rest) { var error:Error = new Error(); var tr:String = ""; for each (var msg:String in rest) { tr += msg + " "; } var s:String = error.getStackTrace(); var arr:Array = s.split("at ")[2].split("()"); var stack:String = arr[0]; var arrClass:Array = stack.split("/")[0].split("::"); var className:String = arrClass[arrClass.length - 1]; var functionName:String = stack.split("/")[1]; if ( functionName == null ) { functionName = className; } var arrLine:Array = arr[1].split(":"); if (arrLine.length > 1) { var line:String = arrLine[arrLine.length-1].split("]")[0] trace( "[" + className + "][" + functionName + "]" + "[" + line + "]", tr );; } else { trace( "[" + className + "][" + functionName + "]", tr ); } } } }
Programmez bien :).