jeudi, avril 10 2008
Par -Alexandre LEGOUT aka LAlex- le jeudi, avril 10 2008, 16:39 - [ Liens ]
Pour info, la nouvelle version du Flash Player, orientée sécurité, est
maintenant disponible. Estampillée Flash Player 9.0.124, elle fixe pas
moins de 7 failles, dont celle qui avait permis à un pirate de prendre
possession d'un système OSX.
Dnas la même lignée, Adobe AIR
1.0.1, qui intégre ces même corrections, est également disponible.
lundi, mars 31 2008
Par -Alexandre LEGOUT aka LAlex- le lundi, mars 31 2008, 17:30 - [ AS3 / Flex2 ]
L'équipe d'envrac avait prévenu, mais je suis en train de
doucement glisser vers la dépendance au JSFL...
Un p'tit langage qui permet de scripter l'IDE et ainsi de raccourcir
drastiquement les taches répétitives, c'est quand-même du pain béni pour peu
qu'on prenne le temps de s'y pencher. Pas encore interessé aux panneaux
"custom", j'ai pondu quelques petites déclinaisons d'un script inspiré par une
ancienne collègue - si tu te reconnais, un paquet de Carambars
- et qui
facilite grandement l'intégration timeline/code (un petit article prévu la
dessus dés que je lève un peu la tête des mes projets et que je me défénéantise
en ce qui concerne ce blog).
Bref, ceci est un ensemble de 4 scripts JSFL qui font le tour des instances
nommées dans un clip, et affiche dans le panneau de sortie les déclarations AS3
de celles-ci : je ne parlerais pas ici de la quasi obligation morale qui
nous incombe à tous de décocher la case "Déclarer automatiquement les instances
etc..." si vous êtes pas des trouillards... :p
Lire la suite...
mardi, mars 18 2008
Par -Alexandre LEGOUT aka LAlex- le mardi, mars 18 2008, 20:09 - [ AS3 / Flex2 ]
... qu'y disent! Eh ben, non madame, c'est bien pour les codeurs aussi!
Prenons totalement au hasard un exemple de petite classe utilitaire de debug
pour afficher le framerate et la mémoire utilisée: et bien c'est quand-même
bien plus pratique de déposer un petit composant sur sa scène plutôt que de se
frapper un 'new FramerateViewer()' dans une DocumentClass quand-même... Et ca
se fait tout aussi vite!
Et que même si on veut mettre une icone et tout et tout, ca prend bien 2mn de
plus! 
Allez, l'exemple en pratique: Framerate.swc 
PS: Merci famfamfam
pour l'icone
lundi, mars 17 2008
Par -Alexandre LEGOUT aka LAlex- le lundi, mars 17 2008, 17:28 - [ Divers ]
1046: Type was not found or was not a compile-time constant: MovieClip.
No comment...
lundi, février 25 2008
Par -Alexandre LEGOUT aka LAlex- le lundi, février 25 2008, 12:58 - [ AS3 / Flex2 ]
Ca y est! Les blougs du monde entier l'ont déjà dit, le Flex 3 SDK, première
release OpenSource de Flex et Adobe AIR, la saint graal gratuit des développeurs de RDA
(Rich Desktop Applications, bande d'inclutes), sont sortis!
Tout ca semble extremement prometteur.
Je ne vais pas faire la liste des features, mais juste mettre le doigt sur un
enorme point positif de cette release: la disponibilité des sources de la classe WebService de Flex! Le passage a l'AS3 avait tout
simplement zappé cette classe dans Flash CS3.
Maintenant, reste à voir s'il est possible de se servir de celle-ci sans se
trimbaler la moitié du framework Flex...
Si je trouve le temps de faire des tests, j'en donnerai le resultat ici...

jeudi, février 21 2008
Par -Alexandre LEGOUT aka LAlex- le jeudi, février 21 2008, 20:02 - [ AS3 / Flex2 ]
L'algorithme A* (A-star) connait de nombreuses implémentations. La plupart
utilisent une grille (tableau à deux dimensions) en tant que carte. Etant à la
base des jeux "tile-based", celles-ci suffisent la plupart du temps à la grande
majorité des jeux. Seulement cela impose un certain nombre de contraintes,
notamment en terme de dimensions des "obstacles", mais aussi en terme de
performances: l'algorythme se basant sur des noeux (nodes), une grille de 40/40
offre 1600 cases (maximum, l'A* n'étant pas exhaustif), ce qui est déjà bien
important...
J'ai voulu essayer de me baser plutôt sur un bitmap, simple (pour
l'instant), une couleur étant celle du sol, l'autre celle des
obstacles :
Lire la suite...
mercredi, février 20 2008
Par -Alexandre LEGOUT aka LAlex- le mercredi, février 20 2008, 19:57 - [ AS3 / Flex2 ]
Un appel à une méthode paut parfois avoir besoin d'un certains nombre
"d'options", comme c'est le cas pour la méthode Array.sort par
exemple.
Il existe alors plusieurs possibilités, la plus simple étant de proposer un
certain nombre de paramètres booléens facultatifs, avec des valeurs par défaut.
Le problème est tout d'abord que cela alourdit considérablement le code, mais
aussi que rajouter une option supplémentaire modifie la signature de la
méthode: si on travaille avec des interfaces, bonjour la galère).
Bref, il existe aussi la possibilité de passer un seul entier, qui sera la
somme de puissances de 2. En gros, cela permet d'avoir, en binaire, une suite
de 0 et de 1, chacun correspondant à l'activation (ou pas) d'une option.
Voyons comment cela fonctionne concrètement avec l'exemple de
Array.sort
Lire la suite...
Par -Alexandre LEGOUT aka LAlex- le mercredi, février 20 2008, 19:23 - [ Liens ]
A compter du 3 Mars, je démarre une activité de développeur indépendant,
spécialisé dans l'Actionscript 3 pour Flash, et pourquoi pas Flex 2/3 (que j'ai
pratiqué intensemment dans mon précédent poste sur la Côte) et Adobe AIR.
Une nouvelle page (simplissime certes, mais tirée au cordeau en XHTML/CSS) orne
donc maintenant le site LAlex.com pour rendre compte de cette nouvelle direction dans ma vie!

Si vous avez donc besoin d'un prestataire sérieux, n'hésitez pas à me
contacter pour connaitre mes disponibilités! 
Voilà, c'était le billet "nombril" du jour 
lundi, février 11 2008
Par -Alexandre LEGOUT aka LAlex- le lundi, février 11 2008, 12:43 - [ Liens ]
Eh oui, un gentil belge a fait le fichier de colorisation Actionscript 3 pour GeSHi, disponible sur son blog.
Merci à lui! 
lundi, janvier 7 2008
Par -Alexandre LEGOUT aka LAlex- le lundi, janvier 7 2008, 19:37 - [ AS3 / Flex2 ]
Le nouvelle gestion des TextField avec AS3 est assez géniale je dirais: plus
de propriété html, et une gestion commune entre le texte "classique"
associé aux TextFormat et le texte HTML. Du coup, on peut manipuler
indifféremment le HTML ou les TextFormat, la modification de l'un sera
reportée sur l'autre, comme on peut le voir via le code suivant:
// Crée le champ texte
var tField:TextField = new TextField;
tField.text = "LAlex";
// Crée le format (couleur rouge)
var tFormat:TextFormat = new TextFormat();
tFormat.color = 0xFF0000;
// Applique sur les deux premiers caractères
tField.setTextFormat(tFormat, 0, 2);
// Affiche le resultat HTML de tout ca
trace(tField.htmlText);
<P ALIGN="LEFT"><FONT FACE="Times Roman" SIZE="12" COLOR="#FF0000" LETTERSPACING="0" KERNING="0">LA<FONT COLOR="#000000">lex</FONT></FONT></P>
Bon, aprés on va pas chipoter sur la cohérence du formatage HTML, évidemment
il y a mieux, mais le tout est d'avoir notre correspondance
TextFormat/HTML...
Bref, tout ceci étant fait, si on veut obtenir le copie conforme d'un texte
dans un autre, il suffit alors de copier le htmlText du premier sur le
second, sans se préoccuper des TextFormat? Eh bien pas
forcément...
Lire la suite...
lundi, décembre 17 2007
Par -Alexandre LEGOUT aka LAlex- le lundi, décembre 17 2007, 13:04 - [ AS3 / Flex2 ]
L'AS3 nous a amené les classes internes (mot-clé internal) qui nous
permettent d'encapsuler un certain nombre de fonctionnalités dans une classe
disponible uniquement à la classe publique qui l'utilise. Bien pratique, cela
évite les classes trop longues, et grâce à l'héritage (une classe interne peut
en étendre une autre), cela peut aussi éviter l'utilisation d'un trop grand
nombre de if, et donc abaisser la complexité du code.
Cela peut aussi permettre de disposer d'une classe qui n'est pas
instanciable depuis l'extérieur. Seulement, il peut parfois être utile
d'accéder à une instance de ces classes, et là, la solution c'est tout
simplement les interfaces...
Lire la suite...
lundi, décembre 3 2007
Par -Alexandre LEGOUT aka LAlex- le lundi, décembre 3 2007, 15:55 - [ AS3 / Flex2 ]
Actuellement en train de travailler sur un séquenceur de différents types
d'action, incluant notamment les interpolations, j'en viens à re-développer une
classe de Tween, incluant les améliorations standards des TweenEngine en
circulation sur la toile (tween de plusieurs propriétés par exemple).
Tout d'abord, il faut savoir qu'un tween a un principe tout simple: je veux
qu'une propriété numérique d'un objet (le plus souvent un objet visuel, comme
un Sprite par exemple) évolue entre une valeur de départ et une valeur
d'arrivée sur une durée précise. Une équation est utilisée afin de déterminer
l'évolution de cette valeur, la plus simple étant une équation linéaire (on
partage la distance en intervalles réguliers).
Pour cela, il existe trois méthodes:
Lire la suite...
mardi, octobre 30 2007
Par -Alexandre LEGOUT aka LAlex- le mardi, octobre 30 2007, 16:50 - [ AS3 / Flex2 ]
Je me rend compte carrément tard par rapport au temps depuis lequel
j'utilise les Tweens, mais aviez-vous remarqué que la classe fournie par Adobe
dans Flash CS3 (fl.transitions.Tween) émettait l'évènement de fin
(TweenEvent.MOTION_FINISH) une frame trop tard? La raison est simple,
le test effectué pour détecter la fin est strict:
if (t > this.duration) {
Il suffirait d'un '>=' à la place pour modifier cela, mais à ce moment là
la fonctionnalité de boucle zapperais une frame avant de boucler...
Les Tweens de Flex et des "tween engines" que j'ai vu en AS3 (TweenLite et
Tweener) n'ont
pas ce défaut par contre...
vendredi, octobre 26 2007
Par -Alexandre LEGOUT aka LAlex- le vendredi, octobre 26 2007, 12:15 - [ Liens ]
Trouver un set de composants de base pour Flash CS3, à part celui développé
par Grant Skinner dont tout le monde se plaint, c'est pas facile. Trouver un
set de composants faciles à personnaliser, c'est encore moins facile.
Alors quand un "frenchy" s'apprête à proposer les Liquid Components, un set
de composants de base qui répond à tous les besoins des graphistes (et des
autres utilisateurs de Flash CS3) en terme de personnalisation, et qu'en plus
on sait qu'il les mettra à disposition gratuitement, obligé d'en parler!
Lire la suite...
lundi, septembre 10 2007
Par -Alexandre LEGOUT aka LAlex- le lundi, septembre 10 2007, 20:16 - [ Divers ]
Le niçois que j'étais viens de se perdre à Paris pour s'y installer, et
autant dire que le choc thermique a été important!
J'ai pris depuis mes
fonctions en tant que Lead Dev Flash au sein du groupe DDB, et là j'ai bien vu que le jeu en valait la
chandelle... Je ne regrette pas d'avoir fait autant de kilomètres tant le
boulot est sympa. En plus je retrouve un p'tit niçois qui n'est autre que
Foxy et qui a vendu son âme
aux créatifs de Rapp
Collins Paris...
Pour finir, on me cherche encore des collègues: j'en profite du coup pour
relayer ici l'offre d'emploi de DDB:
Rapp Collins
Paris du groupe DDB recherche pour son pôle "WebProd" un développeur Flash
AS2/AS3.
En collaboration avec les chefs de projet techniques, vous aurez en charge
le développement des projets élaborés par notre team de créatifs. Les projets
sont funs et ambitieux techniquement. Ils sont encore beaucoup développés en
AS2, mais on pousse fort vers l'AS3, comme par exemple sur pixelf
Ce qu'on vous demande: - être à l'aise en conception et programmation
orientée objet - maîtriser plutôt très bien l'AS2 - avoir au moins eu la
curiosité de s'être penché sur l'AS3 et avoir envie de continuer - et puis...
être globalement doué quoi!
Le poste est un CDI basé sur Paris 9
N'hésitez pas à envoyer vos candidatures (CV+LM) à alexandre.legout
-arobase- rappcollinsparis.fr
vendredi, juillet 27 2007
Par -Alexandre LEGOUT aka LAlex- le vendredi, juillet 27 2007, 18:44 - [ AS3 / Flex2 ]
Aprés maintenant quelques un grand nombre de lignes de code en AS3, j'ai
noté quelques comportements bizarres...
- la propriété "constructor" de la classe Object ne semble pas être déclarée
comme publique. Donc, on se retrouve avec une contradiction entre la doc et la
réalité... et surtout aucun moyen de connaitre la classe qui a servie à créer
l'objet. Un workaround existe utilisant describeType:
public class ClassUtils
{
public static function getConstructor(o : *) : Class {
var clname:String = describeType(o).@name.toXMLString();
var claz:Class = getDefinitionByName(clname) as Class;
return claz;
}
}
- imaginons que je crée une interface vide (ainsi que son implémentation) qui
me sert uniquement à indiquer l'appartenance à deux types simultanément: en
gros, une interface qui hérite de deux interfaces. Si ces deux interfaces mères
ont une méthode commune et que j'utilise mon interface fille pour typer une
variable, le compilateur va me remonter une erreur comme quoi la référence à
cette méthode est ambigue. Ceci est tout à fait inconcevable, car il est clair
que l'implémentation utilisée sera évidemment unique! Bon, étant donné que ce
charabia doit être super flou, voici un exemple:
// Voir plus bas pour les différentes interfaces
package {
import flash.display.Sprite;
import itf.IDataSet;
import itf.IList;
import cl.DataSet;
public class ASPlayground extends Sprite
{
public function ASPlayground()
{
var ids:IDataSet = new DataSet;
trace(ids.getLength()); // Erreur du compilateur: Référence ambiguë à getLength.
trace((ids as IList).getLength()); // Marche bien !
}
}
}
package itf
{
public interface IList
{
function getLength() : int;
}
}
package itf
{
public interface ICollection
{
function getLength() : int;
}
}
// Cette interface sert au typage
package itf
{
public interface IDataSet extends IList, ICollection
{
}
}
// Implémentation de IDataSet
package cl
{
import itf.IDataSet;
public class DataSet implements IDataSet
{
public function getLength():int
{
return -1;
}
}
}
Rien de bien gênant, mais ca peut parfois être troublant! 
- Le workaround du premier problême fait surtout chuter les performances
- Le deuxième problême par contre ne sacrifie en rien les performances, mais
peut-être gênant si on ne connait pas les interfaces mères...
mardi, juillet 10 2007
Par -Alexandre LEGOUT aka LAlex- le mardi, juillet 10 2007, 13:57 - [ Liens ]
Enfin la voila! De la 3D qui claque en AS3, et même en AS2 pour ceux qui
veulent tester avant la version finale: http://blog.papervision3d.org/2007/07/07/papervision3d-public-beta/
Et pour le plaisir des yeux, une petite video a été montée pour l'occasion:
http://www.papervision3d.org/showreel/publicbeta
jeudi, avril 26 2007
Par -Alexandre LEGOUT aka LAlex- le jeudi, avril 26 2007, 10:19 - [ Liens ]
Alors que les sources du framework Flex 2 sont disponibles depuis le départ
avec le SDK, Adobe s'apprête à ouvrir le code de tout le SDK, notamment le code
Java des compilos MXMLC et ASC. Décidemment, Adobe va vraiment dans le bon
sens! 
Respects donc... Plus d'infos ici: http://labs.adobe.com/wiki/index.ph...
mardi, avril 24 2007
Par -Alexandre LEGOUT aka LAlex- le mardi, avril 24 2007, 11:54 - [ Liens ]
Je disais dernièrement à l'ami Foxy que j'étais tellement emballé par Flex 2 que je l'utiliserais
bien même pour le développement sur des animations interactives. Le fait est
que dans la pratique, cela ne semblait que difficilement réalisable: Flex 2 ne
permet pas comme MTASC d'injecter du code dans un SWF déjà fait. Tout au plus,
cela permet de récupérer les assets graphiques de la bibliothèque grace au
[Embed], mais en perdant tout le code.
A première vue, il y a peu d'interêt à récupérer du code si l'on est un
codeur qui récupère le travail d'un graphiste, mais en y regardant de plus
prés, un simple stop() a la fin d'une anim reste quand-même nécessaire...

Adobe résout ce problème d'interférence entre les deux outils dédiés au
Flash Player 9 (en passant, la version 9.0.45.0 a fait son apparition récemment), grâce
au Flex Component Kit for Flash CS3. Cet outil va transformer un
MovieClip Flash en composant UIComponent de Flex 2, en créant un fichier .swc
directement "linkable" dans les paramètres d'un projet Flex 2.
Au vu du nom, j'ai d'abord cru à la possibilité d'utiliser les composants
Flex 2 dans Flash (on peut toujours rêver), mais l'autre sens est en fait bien
plus interessant, le graphiste travaillant généralement en amont du
codeur...
Les graphistes sur Flash et les codeurs sur Flex 2 vont enfin pouvoir parler
la même langue! 
samedi, avril 21 2007
Par -Alexandre LEGOUT aka LAlex- le samedi, avril 21 2007, 19:26 - [ Liens ]
Maintenant que la vague CS3 commence à déferler sur le web, la question que
tout le monde se pose avec Flash est: "Quand allons nous pouvoir
l'utiliser?".
Lire la suite...
Derniers commentaires