Articles taggés avec ‘flash’

Veille

Alternativa3D Released !

Et voilà, le moteur 3D Alternativa3D vient tout juste de sortir à cette adresse : http://alternativaplatform.com/en/ le moteur est téléchargeable gratuitement MAIS par contre il n’est pas en open source :(. C’est donc 3 fichiers swc (classes et symboles précompilés) qu’il faudra inclure à votre libraire pour pouvoir l’utiliser (pas d’utilisation sous flash cs3 du coup).

Aprés avoir un petit peu testé la bête, je peux dire que les performances sont bel et bien au rendez-vous et que le tout est très simple à utiliser (surtout le moteur de collision qui se résume à une propriété à activer).

Le 1 juin 2008 par kikko

Tags = ["", ""];

3 commentaires

Veille

Premiers retours sur flash 10

La sortie de la pré-release de flash 10 a pas mal agité les flahseurs assidus que nous sommes ces derniers temps. Quelques papes ont d’ailleurs déjà publié des articles expliquant comment profiter des dernières fonctionnalités :

Pour le moment il n’y a pas de doc mais comme le propose le blog d’Iteratif, l’outil ClassBrowser peut se révéler très pratique si vous souhaitez compiler en flash 10.

Globalement, les nouvelles implémentations sont de véritables bombes qui, sans bouleverser les applications de Flash dans le Web, vont probablement enrichir énormément la qualité et la fluidité de nos modules/sites en flash tout en facilitant leur production.

Personnellement, j’ai surtout axé mes tests sur la nouvelle API de dessin et un post sur le résultat de ces tests devrait suivre d’ici peu.

Mais en ce qui concerne la 3D, je tire pour le moment un bilan mitigé de mes premiers tests. Nottament sur la non-prise en charge de l’axe z pour gérer les depths des display object. Même si en théorie ça paraît légitime, ça se révèle très frustrant en pratique puisque la méthode local3DToGlobal qui est censé nous permettre de récupérer la profondeur globale d’un clip imbriqué ne nous renvoie qu’un Point (contenant seulement les valeurs de x et de y à l’écran). Il sera donc “compliqué” de gérer efficacement la profondeur des display object imbriqués relativement à leur valeur de Z globale (pour créer une classe Camera3D par exemple). Où il y a peut-être quelque chose qui m’échappe ? Ces premiers tests ayant été fait de façon très superficielle, je suis peut-être passé à coté de quelque méthode ou propriété réglant ce problème.

Le 21 mai 2008 par kikko

Tags = ["", ""];

3 commentaires

Geekitude

Pourquoi l’AS3 ne sera jamais en français.

C’est avec émotion que je rédige mon premier post sur ce blog :’) Amis de la subversion et des posts où on peut tout comprendre en une seule lecture (quoique..), bienvenue.

Qui n’a jamais fait de blague sur ses noms de variables.. ? Qui n’a jamais subi de regard dubitatif après une conversation au sujet de Strings avec un collègue codeur..?
Vous n’avez jamais pensé à ce que donnerait l’AS3 en français ?

Et bien, ne rêvez pas plus, nous l’avons fait pour vous.

Pour faire ma petite démo, je suis allée chercher un bout de code sur le Flash Enabled Blog, avec cet exemple de Drag and Drop.

Nous apprenons, entre autre, qu’un Sprite est un Farfadet.. (j’y peux rien moi..)

Le gros problème que ça soulève, si vraiment l’envie vous prend de tout traduire et de lancer un AS francophone (on s’amuse comme on peut), c’est la traduction du féminin/masculin.
Si on prend l’exemple d’un new Truc(), tout dépend de l’objet Truc().
Ca pourrait être nouveau Tableau, nouvelle Chaine, ou encore nouvel Objet.. Idem pour le privé ou privée.. Bref ça devient vite n’importe quoi.

L’exemple :

paquet {
 
     importer flash.afficher.Farfadet;
     importer flash.evenements.Evenement;
     importer flash.evenements.EvenementSouris;
     importer flash.texte.ChampsTexte;
 
     publique classe AnagrammeGlisserDeposer etends Farfadet{
 
          privee variable glisseeCible:Farfadet;
 
          publique fonction AnagrammeGlisserDeposer () {
                variable tableau:Farfadet= nouveau Farfadet();
                variable lettres:Tableau = nouveau Tableau("d","i","r","t","y","r","o","o","m")
                variable l:Chaine;
                variable xPos:entierNonSigne = 50
                variable yPos:entierNonSigne = 100
                pour chaque (l dans lettres) {
                      variable piece:Farfadet= nouveau Farfadet();
                      piece= creerPièceLettre(l comme Chaine) // taille, couleur, jaune
                      piece.x = xPos;
                      piece.y = yPos;
                      xPos += 50;
                      tableau.ajouterEnfant(piece);
                      piece.ajouterEcouteurEvènement(EvenementSouris.SOURIS_BAISSEE, glisserDemarreur, faux);
                      piece.ajouterEcouteurEvenement(EvenementSouris.SOURIS_LEVEE, glisserBouchon);
               }
               ajouterEnfant(tableau)
               variable instructions:ChampsTexte= nouveau ChampsTexte();
               instructions.texte = "Ré-organise des lettres pour former un autre mot"
               instructions.x = 20
               instructions.y = 20
               instructions.largeur = 300;
               ajouterEnfant(instructions)
         }
         privee fonction glisserDemarreur(evenement:EvenementSouris):vide{
               si (evenement.cible est Farfadet) {
                     glisserCible = evenement.cible comme Farfadet;
                     glisserCible.commencerGlisser();
               }
        }
 
        privee fonction glisserBouchon(evenement:EvenementSouris):vide{
               glisserCible.arreterGlisser();
        }
 
        privee fonction creerPieceLettre(txt:Chaine):Farfadet{
               variable s:Farfadet = nouvelle Farfadet ();
               variable lettre:ChampsTexte= nouveau ChampsTexte();
               variable pieceCouleurArrière:entierNonSigne  = 0xDBD9A6;
               variable pieceCouleurOmbre:entierNonSigne  = 0x676420;
               variable pieceCouleurBordure:entierNonSigne  = 0x000000;
 
               s.graphique.commenceRemplir(pieceCouleurOmbre);
               s.graphique.dessineRectangle(-2, 2, 40, 40);
               s.graphique.arretRemplir();
               s.graphique.commenceRemplir(pieceCouleurArriere);
               s.graphique.dessineRectangle(0, 0, 40, 40);
               s.graphique.arretRemplir();
               s.graphique.styleLigne(1, pieceCouleurBordure, 100);
               s.graphique.dessineRectangle(0, 0, 40, 40);
 
               lettre.texte = txt
               lettre.selectionnable = faux;
               lettre.x = 14
               lettre.y = 14
               lettre.largeur = 14
               lettre.hauteur = 16
               s.ajouterEnfant(lettre)
 
               retourner s;
        }
    }
}

Alors, vous en pensez quoi ?
Et comme te dirais Maître Capello dans le debugger, si erreur dans ton code il y a..

Le 20 mai 2008 par Wahiba

Tags = ["", "", ""];

13 commentaires

Tutos

Flash Switcher : jonglez avec plusieurs versions de Flash

Flash Switcher est une extension Firefox qui (comme son nom l’indique) permet de “switcher” entre plusieurs versions du plugin Flash pour Firefox.

Cette extension est fort utile pour tester des applis Flash avec des vieilles versions du plugin (sisi ça existe encore les clients qui veulent du Flash 6…) mais aussi pour basculer entre la version normale et debug du plugin. Et puis en ces temps euphoriques de sortie de Flash 10, il est bien pratique de pouvoir facilement revenir à une version stable et entièrement fonctionnelle.

Lire le reste de cet article »

Le 16 mai 2008 par PingooO

Tags = ["", ""];

Aucun commentaire

Veille

Adobe Flash Player 10 : codename Astro

La Démo d\'Astro

Adobe vient tout juste de proposer en téléchargement une prerelease du Flash Player 10.

Une démo disponible sur le lab d’Adobe permet de se faire une petite idée des nouveautés qui nous attendent : 3D Native, accélération GPU (?!), Chaines IK (animateurs de tous pays, réjouissez vous…), gestionnaire de texte ameilloré, et surtout bien sûr les custom effects en Hydra Pixel Bender.

Update : Mais aussi File Reference (ouverture/écriture de fichiers locaux), génération de sons dynamiques, ECMAScript 4…etc.

Le 15 mai 2008 par kikko

Tags = ["", "", "", ""];

3 commentaires

Code

Trois petites méthodes…

…bien utiles pour des scrollbars (entre autre).

Qui ne s’est jamais pris la tête avec des scrollbars dans Flash ? Quand il faut calculer le ratio entre les positions du contenu et du bouton de scroll… Pour peu que la taille de la scrollbar soit différente de celle du conteneur, on s’en arrache vite les cheveux.

Bit-101 a transcrit en AS3 trois méthodes provenant d’un livre sur Processing.

normalize(value, min, max) prend une valeur comprise dans un intervalle min - max et la convertit en une valeur comprise entre 0 et 1. La valeur de départ peut dépasser les bornes de l’intervalle.

interpolate(value, min, max) prend une valeur normalisée (comprise entre 0 et 1) et renvoie la valeur correspondante dans l’intervalle min - max.

map(value, min1, max1, min2, max2) prend une valeur et un intervalle de départ (min1 - max1) et renvoie la valeur correspondante dans l’intervalle min2 - max2.

L’article original de Bit-101
Et la petite classe as3 :

package {
	public class NumberUtils {
		public static function normalize(value:Number, minimum:Number, maximum:Number):Number {
			return (value - minimum) / (maximum - minimum);
		}
		public static function interpolate(normValue:Number, minimum:Number, maximum:Number):Number {
			return minimum + (maximum - minimum) * normValue;
		}
		public static function map(value:Number, min1:Number, max1:Number, min2:Number, max2:Number):Number {
			return interpolate( normalize(value, min1, max1), min2, max2);
		}
	}
}

Le 14 mai 2008 par PingooO

Tags = ["", ""];

5 commentaires

Veille

Flash en route vers la liberté ?

Billet original sur blogbangbang.com

Adobe à annoncé aujourd’hui la libération des spécifications des formats swf et flv !

Cet article va donc s’efforcer de détailler ce qui va changer, mais aussi ce qui ne changera pas suite à cette annonce.

Lire le reste de cet article »

Le 1 mai 2008 par jblanche

Tags = [""];

5 commentaires

Chroniques

Rions avec le player Flash de debug

Le player Flash de debug en action, sur le site d'Adobe...

Le player Flash de debug en action, sur le site d’Adobe…

Le 30 avril 2008 par nerik

Tags = [""];

1 commentaire

Veille

L’ouvrage libre “Pratique d’ActionScript 3″ est disponible

Logo pratique as3

Kikko l’annonçait dans son précédent article, c’est maintenant chose faite : le livre “Pratique d’ActionScript 3″ de Thibault Imbert est enfin disponible. Prévu au départ pour les éditions O’REILLY France, c’est aujourd’hui en version libre (PDF) que Thibault le propose à la communauté Flash/Flex depuis le site dédié. Pour ceux que la lecture sur écran incommode ou que l’impression des 1100 pages (!) inquiète, une version papier devrait bientôt être disponible.

Pour télécharger l’ouvrage, c’est ici.

Le 29 avril 2008 par ju

Tags = ["", "", "", "", ""];

2 commentaires

Veille

Conventions de codage en AS3

Adobe vient de publier un document fort intéressant intitulé « Flex SDK coding conventions and best practices ». Le titre est trompeur puisqu’il n’est point question de Flex mais bien d’AS3, ce qui est révélateur quand à l’obsession maladive d’Adobe sur Flex (au détriment de Flash en tant qu’IDE, oserais-je avancer). Plus généralement, cette louable initiative, parmi d’autres, tend à montrer à quel point la firme californienne cherche à se créer une crédibilité auprès des « vrais » développeurs.

La lecture ou au moins le survol de ce document est recommandé. C’est un condensé de bon sens qui tranche avec le grand n’importe quoi de l’AS1 et de l’AS2 (”monClip1_mc”, David T. style). Et celà peut servir d’arbitrage lors d’un désaccord entre développeurs.

Pour autant, on y relève un certain de nombres de passages un peu surprenants :

Tableaux typés

Do this:
var a:Array /* of String */ = [];
Not this:
var a:Array = [];

Étrange… Cette pratique rapelle la méthode utilisée à l’époque par le compilateur alternatif MTASC. Certes, c’est bien commode pour la complétion dans FlashDevelop par exemple, mais c’est en concurrence avec la méthode officielle Flex (lourdingue) : ArrayElementType metadata tag. La prochaine version de l’EcmaScript, et donc logiquement le futur AS4, integrera en natif les tableaux typés. En attendant, si on est courageux, on peut utiliser des classes de tableaux typés (MovieClipArray, etc) que l’on trouve dans pas mal de frameworks AS.

int plutôt que uint

Use int for integers, even if they can’t be negative. Use uint only for RGB colors, bit masks, and other non-numeric values.

Tout simplement absurde. Adobe préconise cette pratique en oubliant de préciser qu’elle découle d’un bug dans le player Flash : Types in AS3: ints not so fast, uints slow!

imports

Import specific classes, interfaces, and package-level functions rather than using the * wildcard.
Do this:
import mx.controls.Button;
import flash.utils.getTimer;

Not this:
import mx.core.*;

Mouais. Ou comment avoir 30 lignes d’imports au début de chaque classe. Je pense pas que ce soit très utiles pour les classes intrinsèques du player Flash (import flash.display.*; rules !)

À part ça, que du bon. À revisiter quand le document sera terminé.

Flex SDK coding conventions and best practices

Le 26 avril 2008 par nerik

Tags = ["", "", ""];

2 commentaires