Des traces partout...
Par -Alexandre LEGOUT aka LAlex- le 20 mars 2007, 17:59 - Divers - Lien permanent
La fonction 'trace' est des plus utiles en Flash. Qu'on soit codeur ou même graphiste, il est toujours pratique de savoir si l'on est effectivement passé dans telle ou telle frame, quelles sont les données reçues en retour d'une fonction, ou tout autre information utile dont on peut avoir besoin sans qu'elle apparaisse dans le SWF final...
Par contre, une fois l'animation/application terminée, je vous en prie, enlevez tous les appels à 'trace' de votre code!!!
Il arrive que l'on ai besoin de voir ces traces en dehors du contexte de l'IDE Flash. A ce moment là, il suffit d'utiliser la version debug du Flash Player, assortie de quelques configurations et de la fonction 'Log Tail' de la console SOS. Toutes les instructions 'trace' apparaissent alors dans la console, et c'est que du bonheur pour ses développements...
Seulement, le codeur n'en est pas moins internaute. Et se prendre toutes les traces de chaque site que l'on visite, y compris les plus sérieux (Adobe, AlloCine, et d'autres que je n'ai plus en tête), c'est plutôt lourd, surtout quand on développe en parallèle, et qu'on a besoins de certaines traces de notre propore code, qui se retrouvent reléguées en dehors de la console...
Quand un peintre a fini de faire une pièce, il enlève le papier journal par
terre non? ![]()
PS: Pour les mêmes raisons, il est important de ne pas afficher de données sensibles dans vos traces, car tout le monde peut les récupérer du coup!
Commentaires
Pour les firefoxeurs, il existe aussi flashtrace : http://www.sephiroth.it/firefox/
)
(qui n'enlève pas la peinture, non plus
pas bête.... et bien vu
Je n'y avais jamais pensé !
Est ce que l'option 'omettre les actions trace' des paramètres d'exportation ne permet pas de justement ne pas les inclure pendant la compilation ?
Surement, mais ca fait un bon moment que je n'utilise plus la compil de Flash...
Sur MTASC, il s'agit de l'option "-trace no"...
Pour ma part cela fait longtemps que je n'utilise plus du tout de trace dans mes applications, à la place je préfère des logs vers une console externe avec un contrôle total du debug avec les niveau de logs et un mode verbose pour désactiver tous les logs via le fichier de config de mes applications...
EKA+
Pour ceux que ca intéresse, ekameleon parle de Flash Inspector : http://www.luminicbox.com/blog/?pag...
Oui mais aussi :
- de la console SOS : http://www.powerflasher.com/sos/
- de FireBug : http://extensions.geckozone.org/Fir...
- etc....
Suffit de choisir parmis mes targets persos ou de se faire son propre target selon la console que l'on veut utiliser..
EKA+
Perso je travaille toujours avec une fonction globale de trace genre :
_global.log = function(t){
trace(t);
_global.tt(t); // pour xray
}
et en fin de projet il suffit de désactiver cette fonction et hop magie les traces ne volatilisent
Pour ma part, depuis quelques semaines, je travaille avec XPanel pour externaliser les traces sous Flex 2 :
http://www.deja-vue.net/blog/?p=67&...
J'ai rajouté quelques fonctionnalité dans la classe de log, comme la fonction print_r (principe de la fonction php, pour afficher la structure et le contenu de tout type d'objet).
Donc plus besoin de se tapper des boucles for à faire pour afficher chacun des objets, un simple print_r(mon_objet) suffit...
Et un peu comme Arthy, j'ai une variable à mettre à true/false selon que je veux afficher les traces...
Combien de développeurs n'ont il jamais eu besoin de rajouter un petit trace pour debugger une méthode ? Allons bon savoir pourquoi...
Fil des commentaires de ce billet