Hello :)
Quelques petites nouvelles ce soir pour vous parler rapidement de mes
travaux en cours :)
1 - je suis en train de travailler activement pour fusionner le
système de log de VEGAS dans Maashaack avec une nouvelle
implémentation qui conserve l'essentiel de l'ancien moteur mais
totalement revu et corrigé avec de nouvelles fonctionnalités et
surtout un code totalement unit testé.
A noter que vous retrouverez dans les prochaines versions de Maashaack
(et donc de VEGAS) le nouveau package system.logging pour créer vos
loggers et vos targets
En gros comme tout est comme avant mais les noms changent, par exemple
nous aurons maintenant droit à 3 interfaces importantes : Logger ,
LoggerTarget et Loggable
# Logger : objet permettant de diffuser des messages avec différents
niveaux de logs (LoggerLevel : DEBUG, INFO, WARN, ERROR, FATAL, ALL
(log de plus bas niveau) )
# LoggerTarget : permet de créer des passerelles avec des consoles
(trace , textfield, socket avec par exemple la console SOS de
Powerflasher, etc.)
# Loggable : permet de définir un objet qui contient un logger et donc
qui sera plus facilement debugable :)
Les anciens noms dans vegas.logging : ILogger , ITarget et Logable
Du 9 sinon en interne dans les interfaces et les différentes classes
du package avec une modification importante dans l'interface Logger
avec la méthode log()
Avant la méthode log() permettait de diffuser tout type de message
avec un LoggerLevel au choix... pas très logique finalement si on
cherche à définir pour le système de logger des levels précis !
Du coup logger.log() maintenant fonctionne comme une méthode de log
classique (debug(), warn(), etc.) et diffuse un message sur le level
le plus bas c'est à dire LoggerLevel.ALL (en gros équivalent du
"trace" en ActionScript)
Pour les habitués voilà en gros l'exemple d'utilisation avec la classe
SOSTarget pour ceux qui auront la curiosité de regarder les
différences :
//////////
package examples
{
import system.logging.Log;
import system.logging.Logger;
import system.logging.LoggerLevel;
import system.logging.targets.SOSTarget;
import flash.display.Sprite;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
/**
* Test the SOSTarget class with the SOS Max Console.
* <p>Thanks <b>PowerFlasher</b> and the free <a href='http://
sos.powerflasher.de/'>SOS Max Console</a></p>
*/
public class SOSTargetExample extends Sprite
{
public function SOSTargetExample()
{
target = new SOSTarget( "SOS console test", 0xFFFFE6 ) ;
target.includeDate = true ;
target.includeTime = true ;
target.includeLevel = true ;
target.includeChannel = true ;
target.includeLines = true ;
target.filters = [ "examples.*" ] ;
target.level = LoggerLevel.ALL ;
target.sendFoldLevelMessage("Test a fold message", "Here
the description of the fold message with a specific level" ,
LoggerLevel.INFO ) ;
logger = Log.getLogger( "examples.SOSTarget" ) ;
logger.log ( "Here is some myDebug info : {0} and {1}",
2.25 , true ) ;
logger.debug ( "Here is some debug message." ) ;
logger.info ( "Here is some info message." ) ;
logger.warn ( "Here is some warn message." ) ;
logger.error ( "Here is some error message." ) ;
logger.fatal ( "Here is some fatal error..." ) ;
target.includeDate = false ;
target.includeTime = false ;
target.includeChannel = false ;
logger.info( "test : [{0}, {1}, {2}]", 2, 4, 6 ) ;
////////
stage.addEventListener( KeyboardEvent.KEY_DOWN ,
keyDown ) ;
}
public var logger:Logger ;
public var target:SOSTarget ;
public function keyDown( e:KeyboardEvent ):void
{
var code:int = e.keyCode ;
switch( code )
{
case Keyboard.SPACE :
{
// customize and change the colors of all levels
in the console with this application
target.setLevelColor( LoggerLevel.ALL ,
0xFAEBF0 ) ;
// clear the console
target.clear() ;
break ;
}
default :
{
logger.log( "log message" ) ;
}
}
}
}
}
//////////////
2 - Je commence le portage de nombreux package qui se trouvent dans
PEGAS pour fusionner à nouveau dans Maashaack dans un tout nouveau
package qui va s'appeler tout simplement : graphics.*
Ce package se trouve au top level de Maashaack comme les packages
core.* library.* et surtout system.*
Nous allons beaucoup travailler dans les mois qui vont suivre avec
Zwetan pour apporter une vraie cohérence dans toutes nos
implémentations au niveau graphique ( moteur 2D , moteur 3D, moteur
physique , moteur de transition , espace couleur , filtres ,
manipulation des display objects etc... )
Donc le package graphics.* sera un package avant tout utilisable en
AS3 pour le FlashPlayer même si certains packages pourront tout de
même être utilisé dans Tamarin (comme graphics.colors ou
graphics.geom, etc.)
Bref :) L'idée est de standardiser tranquillement mais surement VEGAS
et d'en faire un framework beaucoup plus agréable que ce qu'il n'est
déjà et surtout contenant tout ce qu'il faut pour créer une vraie
RIA !!!
Vous avez du remarquer en mettant à jour VEGAS ces derniers temps que
j'ai pas mal travaillé avec le FP10... et il y a de forte chance que
Maashaack et VEGAS deviennent compatible FP10 à partir de septembre.
Il est clair que le taux de pénétration du Flash Player 10 commence à
être assez importante pour se concentrer uniquement sur le FP10.
Des nouvelles classes vont donc apparaitre en profitant pleinement des
nouvelles classes du FP10 et surtout utilisant par exemple la nouvelle
classe Vector pour améliorer les performances. etc.
Pour finir je peux annoncer à partir de maintenant beaucoup de micro
chantier sur Maashaack et dans les extensions de VEGAS avec pas mal de
travail qui s'annonce... mais au final espérons une version 2 de VEGAS
d'ici quelques mois au top :)
N'hésitez pas à me donner vos avis sur tout ce qui est écris au
dessus ;) Pour ce qui est des sources du nouveau système de log vous
pouvez les trouver en cherchant un peu dans les branches du SVN de
maashaack (racine du repo) mais elles vont bientôt se déplacer dans le
trunk de maashaack avec tout le refactoring indispensable dans
VEGAS ;)
Il fait chaud... faut encore que je me concentre demain pour écrire un
nouveau article sur mon blog .. mais on peut dire que je suis
motivé :D
EKA+ :)