blog.geturl.net

Aller au contenu | Aller au menu | Aller à la recherche

samedi, mars 24 2007

[pixLib] - Déploiement d'un projet.

Salut,

Hier j'ai eu le plaisir de rencontrer Mister –flashdevil69=- et de lui présenter quelques usages de pixLib.

Voici une partie des sources qu'on a réalisé hier (mise au propre et commenté). -> pixlib_basic_project.zip

Il s'agit d'un exemple de déploiement basic d'un projet pixLib.

On y retrouve :

  • L'utilisation d'un fichier de configuration (config.xml), qui permet d'externaliser des variables.
  • Le déploiement du système MVC global (FrontController)
  • L'utilisation de la LibStack pour charger les Assets graphiques.

En bonus pour les utilisateurs de FDT, une build.xml qui automatise la compilation sous MTASC. :)

En espérant que cela puisse vous aider à entrer dans l'univers pixLib. ;)

Bon week-end,
Laurent

dimanche, mars 18 2007

[VisDoc] - La suprise du wee-end. :)

Voici ce que je viens de recevoir dans ma boite mail :

A new version of VisDoc is available.

Main changes are:

  • This release runs on Mac OS X 10.4 and higher
  • Known caveat: VisDoc will not read in file locations from existing project files; please add the files again
  • Universal Binary: runs native on Intel Macs
  • ActionScript 3.0 support
  • New overview pages for all methods, properties, constants and deprecated members
  • New main page that can be customized to provide more info on the documentation (once created the page will not be overwritten)
  • Progress indicator in dock icon
  • Command-line interface - see http://visiblearea.com/visdoc/documentation/commandline.html for info
  • Easier file management: creates folders css, html, img, js
  • New layout; faster javascript should speed up page views

This update is free for owners of VisDoc.

Download VisDoc 2.0 from http://visiblearea.com/visdoc/download/ More info: http://visiblearea.com/visdoc/

cheers
Arthur Clemens

Quel fut pas ma surprise, ViseDoc qui à mes yeux est le seul générateur de doc AS2 qui à une présentation agréable vient de s'offre une cure de jouvence. :)

Pour vous donner une idée rapide du résultat : http://www.geturl.net/pixlib :)

Je ferrai un autre post une fois que j'aurais un peu jouer avec, et localisé en Français. ;)

Bonne fin de week-end, Laurent

dimanche, février 18 2007

[pixLib] - communication entre un graphiste et un développeur

Bonjour, bonjour,

Alors au menu de ce week-end, une petite explication sur la méthode que Francis préconise pour la gestion d'événements provenant des animations monté par les graphistes. :)

Avant toute chose, ce qui suit n'est valable que dans une application qui déploie le système MVC global de pixLib - pixLib - Vues, Modèles, Contrôleur.

But

Permettre à un graphiste d'envoyer un événement à un moment voulu dans une animation, cet événement est récupéré et traité par le moteur de l'application (site).

Principe

Fournir à une animation chargé dans un environnement «pixLib» une fonction global qui permet de faire la liaison avec le système événementiel de l'application (EventBrodcaster + FrontController).

Le graphiste

// envoi d'event
_global.__DISPATCH( {type:"onIntroAnimationEnd"} );
_global.__DISPATCH( {type:"onOpenMenuItem", name:"Contacts", id:3} );
// log
_global.__LOG( "onBeginAnimation" );

Le développeur

Dans la classe d'initialisation de l'application (Loader) :

private static function _initGlobals() : Void
{
_global.__DISPATCH = Loader._dispatchEventToController;
_global.__LOG = Loader._logMessage;
_global.__LOADER = Loader.getInstance();
}
 
private static function _dispatchEventToController( o : Object ) : Void
{
Debug.DEBUG( o );
EventBroadcaster.getInstance().dispatchEvent( o );
}
private static function _logMessage( o ) : Void
{
Debug.INFO( o );
}

Remarque, ne pas oublier d'appeler _initGlobals(); ;)

Origine - ML pixLib

Et voilà tout le monde est content. :)

samedi, novembre 25 2006

[AS3] - Une petite introduction

Je viens de visionner un didacticiel bien sympathique sur FlashXpress.

Il s'agit d'une introduction à l'AS3 fait par Thibault Imbert, il y présente la structure des éléments graphique et la création des SimpleButton.

Didacticiel AS3 Thibault Imbert.

N'ayant pas encore écrit la moindre ligne en AS3, je viens de faire une agréable découverte, le système événementiel de l'AS3 est le même que celui de pixLib, donc la transition devrait se faire sans grande difficulté. ;)

++ ;)

lundi, novembre 13 2006

[pixLib] - métronome et temporisation

Bonjour,

PixLib contient des outils puissants pour la temporisation. Si vous continuez la lecture de ce billet vous ne temporiserez plus vos applications de la même façon. ;)

Le principe de la temporisation dans pixLib est de créer un «métronome» par fréquence, pour éviter une redondance inutile.

A l'origine était IFrameBeacon :

interface com.bourre.transitions.IFrameBeacon
{
	public function start() : Void;
	public function stop() : Void;
	public function isPlaying() : Boolean;
	public function addFrameListener(oL:IFrameListener) : Void;
	public function removeFrameListener(oL:IFrameListener) : Void;
}

Lire la suite...

vendredi, octobre 27 2006

[pixLib] - Vues, Modèles, Contrôleur

Cela fait un moment que je voulais écrire cette article, mais je savais pas comment l'attaquer! Aujourd'hui je me lance, version «eXtrem programming», on verra bien ce qui va en sortir. :p

Mise en situation

Quand je pense à un projet typée "pixLib", je pense MVC global, c'est à dire que pour chaque partie, module, composant, je vais avoir une vue, un modèle et un contrôleur spécifique, jusque là rien de bien extraordinaire (pattern MVC), par contre ce qui est vraiment génial c'est que chaque partie est accessible de façon global. :)

En pratique

Au démarrage d'un projet je créé différents dossiers qui vont poser la structure.

  • -- controllers
  • -- events
  • -- models
  • -- uis

Lire la suite...

samedi, octobre 14 2006

[pixLib] - Why use pixLib?

Salut,
Il y a une dizaine de jours Francis à posté ceci sur la Mailing-List de pixLib.

Hello guys,
 
I'm trying to get some testimonials on pixlib. 
I'd like to put them online the day of my conference (saturday).
If anyone's interested to share why he uses and likes pixlib, feel free to post few lines on this mailing-list with your full name and position, even in french.
 
Thanks in advance ! :)
 
francis

En voici le résultat : pixLib testimonials!

dimanche, septembre 17 2006

[Fever] - Welcome to the Fever Development Group !

Hi all and Welcome to the Fever Development Group !

Group mission :
Discuss ( if you want ;) ) about a new available ActionScript 2.0
framework named Fever. ( SVN notifications, bug report, feedback, ... )

Fever presentation :
OpenSource (MPL1.1) ActionScript 2.0 Framework targeted for Flash
Player version >= 8.

It's composed in 2 main sections :
- The pure Fever Framework : which defines useful tools to create rich
application or web site ( data validation, history managment, visual
effect, keyboard managment, I/O and more to come...)
- AsWing extensions library : which gives extensions to existing AsWing
GUI Framework.
Fever is fully compliant with MTASC Compiler.
Fever profits from the power of the Pixlib Framework in many
implementations.

Why a new AS2 Framework again ?
To give a complete, easy and robust way for building Flash applications
or full Flash websites using the incredible team : Fever / AsWing /
Pixlib ( FAP )

Some useful links now :
- Google code page : http://code.google.com/p/as2fever/
- Google SVN: http://as2fever.googlecode.com/svn/
- My blog ( fr ) : http://www.customactions.net/webblog/
- Pixlib framework : http://www.osflash.org/pixlib/
- AsWing site : http://www.aswing.org

A first FAP application named "Samples viewer" can be viewed on
http://fever.customactions.net/samples_viewer/

Hope Fever can help some of you for their development ;)

Cheers,
Romain Ecarnot

Celà faisait un moment que je l'attendais, c'est chose faite. :)
Romain vient de rendre disponible Fever, sont framework. Ayant eu la chance de pouvoir déjà jouer un peu avec, je peux vous dire que Fever vient de rejoindre les "linked libraries" de mes projets FDT. :)

//TODO learn Fever API

++ ;)

jeudi, septembre 7 2006

[FDT] - pixLib templates

Aujourd'hui c'est mon anniversaire. :)

Et ce qui vient de tomber dans ma boite mail est un cadeau de taille!

Francis vient de partager sur la mailingList de pixLib 12 templates qu'il utilise «everyday»!.

Dans l'ordre :

De quoi gagner pas mal de temps dans notre travail de tous les jours. :)

Où ?

Comment installer ?

  • lancez FDT.
  • Préférence < FDT < Editor < Templates
  • Là vous voyez la liste des templates déja existant.
  • Clickez sur import…
  • Ciblez un des nouveaux templates
  • validez
  • Il est installé. :)

Utiliser ?

Quand vous êtes dans une classe il vous suffit de faire un «ctrl-espace» pour faire apparaitre la liste des template et de sélectionner celui que vous voulez utiliser. C'est magique. ;)

Je n'ai qu'un mot à dire, merci. :)

MAJ 08/09 - Aujourd'hui le package remoting a quité son statut d'alpha test. :)

jeudi, mai 25 2006

[pixLib] - MVC FrontController + Remoting

Salut toi,
Toi qui veux découvrir les joies que peuvent procurer l'usage de pixLib. :)
Saches que Mike de deja-vue.net vient de publier un billet qui devrait t'intéresser au plus haut point. :)

ActionStep (plugin View) / Pixlib (MVC FrontController + Remoting) SUSHI Service

Tu y découvriras une implémentation du "global" MVC (Model-vue-controleur) de pixLib, ainsi que du package remoting pixlib (alpha), le tout assaisonné de sushi.

Bonne lecture :)

mercredi, mai 10 2006

[pixLib] - GraphicLib et MovieClipHelper vs MovieClip (partI)

Ce qui suit aurait du être en ligne depuis bien longtemps, car à mes yeux il s'agit d'une des pierre angulaire de pixLib. Depuis ça découverte je ne peux plus m'en passer. :)

AbstractLib

Commençons par le commencement, et donc par AbstractLib, une classe abstraite (constructeur privé) qui est étendu par l'ensemble des «librairies» de pixLib.

Quelques variables…

AbstractLib possède plusieurs variables privées accessible via des méthode public :

  • Un nom (String) -> getName, setName
  • Une URL (String) -> getURL, setURL
  • Un TimeOut (Number) -> getTimeOut, setTimeOut
  • Un contenu (non typé) -> getContent, setContent
  • Force le chargement (Boolean) -> setAntiCache(avec/sans cache)
  • Un niveau de chargement -> getBytesLoaded, getBytesTotal, getPerCent
Quelques methodes…
  • load, lance le chargement.
  • execute, qui lance load.
  • release, détruit la gestion d'événement.
Une gestion d'événement…
  • initEventSource, initialise le type d'événement (LibEvent).
  • fireEvent, permet d'envoyer un événement typé LibEvent à l'ensemble des abonnées.
  • fireEventType, permet d'envoyer un événement typé EventType à l'ensemble des abonnées.
  • addListener, permet de s'abonner à l'ensemble des événements.
  • removeListener, permet de se désabonner de l'ensemble des événements.
  • addEventListener, permet de s'abonner à un type d'événement.
  • removeEventListener, faut vraiment que je le dise ?! (comme haut dessus mais l'inverse). ^^

Pour en savoir plus sur la gestion d'événement dans pixLib -> pixLib une programmation événementielle typée.

Voilà pour l'AbstractLib, il s'agit donc d'une classe abstraite qui a tous les outils nécessaire pour gérer le chargement d'un contenu, chacune des classes filles sert à gérer le chargement de contenu plus spécifique, comme GraphicLib qui est spécialisé dans le chargement des swf, jpeg et png de puis Flash8.

Lire la suite...

lundi, mai 8 2006

[pixLib] - LibStack ou le multi-chargement

Bonjour,
suite à une question posé sur le forum de media-box, je me suis décidé à faire une introduction sur le multi-chargement dans pixLib.

Ce que j'appelle le multi-chargement est en fait la mise sous forme de pile (stack) une liste d'objets que l'on veut charger. Pour réaliser ce chargement progressif pixLib possède la classe LibStack. :)

Outils

Comment utiliser la LibStack ?

Avant toute chose il faut savoir que si on utilise pixLib ce n'est pas pour simplement charger un swf ou un jpeg et le manipuler tel quel, mais bien pour charger ceux-ci directement dans une librairie de pixLib (outils qui facilite leur manipulation).
Pour faire du multi-chargement il suffit tout d'abord de construire une instance de LibStack, à laquelle on ajoute la liste des éléments que l'on veut charger ainsi que le type de librairie que l'on veut obtenir à la sortie, il ne reste plus qu'a lancer le chargement. La LibStack va charger chaque éléments de la liste, les uns après les autres et les placer dans une instance de librairie voulu, que du bonheur. :) Bien évidement à quoi nous servirait cette outils si il n'était pas fourni avec un bon gestionnaire d'événement ?! Rassurez vous tout a été pensé. ;)

Voyons maintenant ce que ça donne pratiquement.

Ajouter un élément.

public function enqueue(o:ILib, sName:String, sURL:String) : String

La fonction enqueue prends trois arguments et retourne une chaine.

  • o:ILib -> ILib est une interface, qui est implémentée par AbstractLib, une classe abstraite qui est étendu par toutes les librairies de pixLib. En français cela veut dire que l'on peut utiliser n'importe quelle instance de ConfigLoader, GraphicLib, LibStack, VideoDisplay, XMLToObject ou une classe qui implémente ILib comme premier argument de la fonction enqueue().
  • sName:String -> Il s'agit du nom qui serra donné à o:ILib (nom d'instance), c'est ce dernier qui sort en retour de la fonction.
  • sURL:String -> Il s'agit de l'URL du fichier que l'on veut charger (swf, jpeg, xml).

Les événements.

L'instance de LibStack renvoi l'ensemble des événements reçu par la librairie qui est occupé d'être chargé (ILibListener) plus un événement propre à LibStack (onLoadComplete).

  • onLoadInit -> A chaque fois qu'une librairie est finie de charger.
  • onLoadProgress -> Tout au long des différents chargements.
  • onLoadComplete -> Quand toutes les librairies sont chargées.
  • onTimeOut -> Lancé à chaque fois que le timeOut est écoulé (10 secs par défaut).

Un exemple complet avec la GraphicLib :

import com.bourre.data.libs.GraphicLib;
import com.bourre.data.libs.LibEvent;
import com.bourre.data.libs.LibStack;
 
// On crée une instance de LibStack
var oLibStack:LibStack = new LibStack();
 
// On instancie les différentes librairies que l'on veut charger en stipulant la cible et la profondeur,
et en option si le contenu est visible à la fin du chargement (true par defaut).
var gl:GraphicLib = new GraphicLib(this, 5); var gl2:GraphicLib = new GraphicLib(this, 10, false);   // On ajoute les instances de GraphicLib dans la LibStack
en précisant le nom et l'URL des fichiers à charger dedans.
oLibStack.enqueue( gl, "Animation", "anim.swf"); oLibStack.enqueue( gl2, "Photoa", "image.jpg");   function onLoadInit(e:LibEvent) : Void { trace(e.getName()); } function onLoadProgress(e:LibEvent) : Void { trace(e.getName() + ' : ' + e.getPerCent() + '%'); } function onLoadComplete(e:LibEvent) { // Ici on peut lancer une fonction qui serra exécuter à la fin de tous les chargement. } function onTimeOut(e:LibEvent) : Void { // On peut utiliser setTimeOut pour le modifier le délais de 10 secs par défaut. trace("Le chargement de " + e.getName() + " a échoué!"); }   // On ajoute s'abonne au écouteurs écouteur oLibStack.addListener( this ); // On lance le chargement oLibStack.execute();

La suite au prochaine épisode. ;)

- page 2 de 3 -