25
nov/09
0

Assurer le developpement international de ses productions Flash

Dans la série Big Brother is watching you , j’ai découvert récemment le site http://www.hostip.info/, base de donnée de correspondances adresse IP / Localisation disposant d’une API publique.

Puisqu’il est évident que la plupart des lecteurs assidus de ce blog œuvrent quotidiennement à l’international,

je me permet de vous livrer une implémentation Actionscript de cette API dont vous ne manquerez pas, j’en suis sur, de noter l’utilité pour déterminer la provenance de vos visiteurs.

Qui dit service dit évènementiel (sauf au tennis, mais restons concentrés), voici donc comment manipuler cette classe :

var host:  HostIP = new HostIP() ;
host.addEventListener( HostIPEvent.HOSTIP_CALLBACK, back ) ;
host.addEventListener( HostIPEvent.HOSTIP_ERROR, err ) ;
host.addEventListener( HostIPEvent.HOSTIP_FLAG_CALLBACK, flag ) ;

Et donc ? Que peut on faire avec cette instance de HostIP ?

Pour avoir le code pays ( une classe CountryCodes bien pénible à taper est dispo dans le package ):

host.getCountryCode() ;

Pour avoir le drapeau du pays :

 host.getCountryFlag() ;

Pour avoir simplement l’adresse de l’image du drapeau

 host.getCountryFlagURL() ;

Pour avoir une représentation texte peu exploitable mais très décorative de l’emplacement du visiteur :

 host.getStringLocation() ;

Pour avoir une représentation XML très exploitable mais peu décorative de l’emplacement du visiteur :

 host.getXMLLocation() ;

Toutes ces méthodes ne prennent par défaut aucun paramètre et font donc la recherche sur l’ip du visiteur, mais une IP au format String peut également être transmise.

Comme une petite démo vaut souvent mieux qu’un long discours ( trop tard ) : démonstration

les classes !

10
nov/09
1

Snoop Scratchy Scratch

Je profite de ce blog à la visibilité exceptionnelle pour déterrer mes vieilles expérimentations invendues.

Voila donc une petite appli destinée aux DJ(s ? ) en herbe trop pauvres pour s’offrir de vraies platines mais désireux de retrouver les sensations brutes d’un concert live de David Guetta à la BBox.

Le principe ? manipuler un flux audio grâce aux fonctionnalités proposées par le flash player 10 afin d’en modifier la vitesse dynamiquement. Il suffit ensuite de brancher cela sur une platine virtuelle et d’inclure des fonctionnalités annexes pour avoir une petite appli de scratch fort distrayante.

Vous pouvez donc :
- scratcher les vinyles à la souris
- mettre en pause une platine
- modifier le volume de chaque platine
- modifier le pitch de chaque platine
- utiliser le crossfader ( flèches gauche/droite du clavier)

et avec un peu d’entrainement, à vous les Pass Pass, Tap tap, insert Scratch et autres Body’s Tricks !

Tu l’as voulu ? hein … ouais … Tu l’as eu…

Je sais, les boucles sont d’une qualité médiocre et le résultat audio plus que douteux, mais tout le monde ne dispose pas d’un excellent sounegnagnagnère à portée de main.

Remplis sous: audio
6
oct/09
0

Pixeliser une image ? Mais quelle riche idee !

C’est en consultant le passionnant blog Hidiho! de Nicolas Barradeau riche en expérimentations graphiques assez démentes que je me suis dit :

« Tiens ? Pourquoi ne pas faire la même chose en moins bien histoire d’alimenter mon blog où de toute façon personne ne viendra jamais ? »

Fort de cette riche idée, me voici en mesure de vous présenter une magnifique classe Actionscript proposant une fonctionnalité aussi utile qu’esthétique : pixeliser une image.

Le principe est simple : l’image source est transformée en BitmapData et coupée en rectangles de la taille spécifiée.
Chaque rectangle est ensuite rempli avec la couleur moyenne de la zone.

Voila comment on s’en sert :

var bmp : Bitmap = new Bitmap( Pixelate.pixelate( SOURCE, TAILLE D UN PIXEL )) ;

incroyable non ?

Voici une petite démo avec une jolie asiatique dedans pour bien comprendre le non intérêt de cette classe et en même temps assouvir vos instincts de nerds fans de Hentaï.


la méga classe !

27
juil/09
2

Benchmark : booste ton code

Je vais commencer par vous présenter une petite classe dispo sur mon SVN qui peut s’avérer utile pour certains :

la classe Benchmark.

Son but est simple, pouvoir comparer facilement la rapidité d’exécution de plusieurs fonctions pour au final ne conserver que la plus rapide (ou la plus lente, c’est vous qui voyez).

Comme un petit bout de code vaut mieux qui long discours confus, exemple :

Création des fonctions à comparer :

private function func1( a : Array ) : void { for ( var  i : int = 0 ; i < a.length; ++) ; }
private function func2( a : Array ) : void { for each ( var  i : * in a ) ; }
private function func3( a : Array ) : void { var l : int = a.length ; for ( var  i : int = 0 ; i < l; ++) ; }

Initialisation du benchmark avec deux paramètres :
-le nombre d’itérations : correspond au nombre de fois ou chaque fonction sera exécutée à chaque boucle
-le nombre de boucles : correspond au nombre de boucles à faire pour calculer la moyenne

on ajoute le bench à la scène pour afficher le résultat.

var bench : BenchMark = new BenchMark(1000, 10) ;
addChild(bench);

on peut désormais ajouter ses fonctions au bench :
la méthode addFunction accepte les paramètres suivants :
- la fonction à tester
- le scope de la fonction
- la label a afficher pour cette fonction
- le reste des paramètres à transmettre.

// The param to give to the functions
test = new Array() ;
for ( var i : Number = 0 ; i < 5000 ; i++)  test.push(i) ;

bench.addFunction( func1, this, "for with length inside", test) ;
bench.addFunction( func2, this, "for each", test) ;            
bench.addFunction( func3, this, "for int", test) ;

Une fois ceci fait, il ne reste plus qu’à lancer le test pour obtenir le résultat :

bench.start();

Résultat :

capture benchmark

Et oui je suis également un UI Designer émérite.

la classe !

25
juil/09
0

Un premier article sans interet

Bonjour et bienvenue sur ce blog passionnant auquel vous ne manquerez pas de vous syndiquer, c’est certain.

Même s’il est très fortement improbable qu’un internaute égaré consulte cet article durant les semaines à venir, voici les objectifs de ce blog :

- Subjuguer la communauté actionscript francophone puis mondiale  par la fulgurance de mon code (première phase) puis par ma plastique de rêve (deuxième phase)

- Devenir un codeur reconnu rapidement afin d’être invité en tant que speaker au prochain Flash on the beach (je n’ai rien de prévu pour fin septembre)

-Ajouter « investissement au sein de la communauté actionscript et contributions au monde de l’open source » sur mon CV (j’ai du travail mais on ne sait jamais).

-Avoir plus de 2 visites par mois sur mon SVN.

-Tenter de maintenir un blog en vie pendant plus de 3 semaines.

Merci de votre attention.

Remplis sous: misc