Gestion du design, les CSS
Au détour d'une discussion avec François alias FunkC, nous parlions des CSS et ce dernier m'expliquait qu'il était très simple de récupérer les valeurs des déclarations css, tel que si nous utilisions un objet standard...
Après quelques tests, j'ai pu apprécier la rapide mise en oeuvre de fichiers de configuration, que ça soit pour le design ou des données globales.
Voici un exemple de la css que j'utilise pour les galeries de ce site :
remoting { gateway-uri:http://127.0.0.1/sites/titouille/build/build003/gateway.php; service-name:GaleryLayer; } main { nodeID: 10; filespath: ./ } thumbs { between-border:30; between-thumbs:20; position: top; count: 4; } thumb { width: 100; height: 100; display-speed: 12; transition-speed: 12; } thumbmask { line-weight: 2; line-color: 0xffffff; line-alpha: 100; mask-color: 0xffffff; mask-alpha: 60; } thumbsnav { align-border: 40; between-border: 4; previous: 1leftarrow.png; next: 1rightarrow.png; dimensions: 22; position: top-right; transition-speed: 12; navigation-speed: 20; }
picture { transition-hide-speed: 12; transition-show-speed: 12; transition-move-speed: 20; } picturemask { line-weight: 1; line-color: 0xff0000; line-alpha: 100; mask-color: 0x000000; mask-alpha: 40; } label { font-family: Verdana; font-size: 12; font-weight: bold; text-align: center; color: 0xff0000; } progressbar { x: 0; y: 10; left: 0; top: 0; width: 400; height: 3; fill-alpha: 100; fill-color: 0xaaaaaa; rotation: 0; startxscale:0; startyscale: 100; movingscale: _xscale; depth: 500; }
Bien que la css soit un peu complexe, il n'est pas très compliqué pour quelqu'un connaissant un peu l'actionScript de comprendre à quoi peuvent servir les paramètres qu'on peut lire ici.
Ensuite, J'ai simplement créé une classe me permettant de charger une css et de pouvoir récupérer soit un objet correspondant à une classe css, soit une valeur précise dans une classe.
On peut l'instancier de manière assez simple, et une fois passé le le gestionnaire de retour onReady, on peut récupérer les valeurs via les méthodes getStyle et getProperty
import ch.titouille.css.CSSManager; var cssm:CSSManager; loadCSS(); function loadCSS() { cssm = CSSManager.getInstance(); cssm.onReady = Delegate.create( this, onParseCSS ); cssm.onError = Delegate.create( this, onErrorCSS ); cssm.load("mycss.css"); } function onErrorCSS() { trace( "Impossible de charger la css spécifiée..." ); } function onParseCSS() { //var o:Object = cssm.getStyle( 'main' ); //trace( o.nodeID ); }
Je pense que ça va ouvrir pas mal de possibilités pour les chargements de fichiers de configuration A ton clavier !!