Archive

Articles taggués ‘as3’

Astro (Flash Player 10) : AS3, ECMA4

10/12/2007 Aucun commentaire

Astro, le nom de code du prochain player Flash (le dixième), ne cesse de se découvrir. On en est désormais certains, l’AS3 restera en vigueur pour cette release. L’AS4 reste à l’horizon, mais lointain. En revanche, certains ajouts sont faits à la structure du langage pour se conformer au standard ECMA-232 Rev 4, et entre nous, ça dépote.

Les tableaux typés

1
2
3
4
5
// Crée un tableau où tous les éléments doivent être de type String
var typedArray:[String] = new [String]("Pomme", "Poire", "Banane");
 
// Alternative en variable anonyme :
["Pomme", "Poire", "Banane]:[String];

Les génériques typés

1
2
3
4
5
6
7
8
9
10
11
// Crée un objet générique avec trois propriétés typées
{x:100, y:150, z:50}:{x:Number, y:Number, z:Number};
 
// Défini un type d'objet générique type
Point3D = {x:Number, y:Number, z:Number};
 
// Et hop, on utilise ce type générique
var myPoint:Point3D = new Point3D();
myPoint.x = 100;
myPoint.y = 150;
myPoint.z = 50;

L’opérateur ‘like’

1
2
3
4
5
// Retourne vrai, car ces deux objets ont des propriétés communes (x, y), ainsi que d'autres points communs
trace(instanceOfSprite like instanceOfMovieClip);
 
// Retourne également vrai, même si les deux classes n'ont aucun parent commun !
trace(instanceOfSprite like instanceOfPoint);

Les types mixtes

1
2
3
4
5
6
7
// Définition d'un type acceptant à la foi les valeurs de types Number et String
type MixedType = (Number, String);
 
// Petit test :
var mt1:MixedType = "Pomme"; // Fonctionne correctement
var mt2:MixedType = 12; // Fonctionne également
var mt3:MixedType = {x: 12, y: 15}; // Erreur de compilation, ni Number ni String !

Espérons que tout ceci rentre dans le planning d’Adobe pour Astro, sans quoi il va falloir être très patient pour l’AS4… Allez, salut !

Categories: Code Tags: ,

La métadonnée Embed en AS3

06/12/2007 3 commentaires

Il y a peu, le monde merveilleux de l’ActionScript 3 s’est ouvert à moi. Même si certaines choses sont un peu déroutantes, ayant parcouru un très long chemin en AS2 (raah, l’absence de constructeurs private/protected! Enfoirés de l’ECMA, laissez tomber cet héritage par prototype à la con!), certaines des nouvelles fonctionnalités tuent carrément.

Un truc qui m’avait toujours gonflé en AS2, c’est la liaison entre les assets et le code. Je codais sous Eclipse en compilant avec MTASC, et je modifiais mes assets sous Flash. Seulement, histoire de pouvoir les associer à une classe, je devais, au choix, mettre ma classe sous Flash (et me taper une compilation AS par Flash d’environs 30 minutes), ou faire une grosse méthode bourrine à coup de Object.registerClass.

C’était, avouons-le, pas super beau. Mais désormais, en AS3, les gens d’Adobe ont rajoutés des métadonnées merveilleuses qui permettent de faire ça tout seul, et bien plus encore.

Lire la suite…

Categories: Code Tags: , ,

Moteur 3D sous Flash

12/11/2006 un commentaire

Il y a longtemps, en octobre 2003 (fichtre… un coup de vieux…), j’avais codé un petit moteur 3D en AS1, permettant d’afficher des wireframes d’objets à partir d’un fichier XML.

J’ai repris le même principe pour cette note, mais en recodant la classe en AS2, parce que quand même, c’est plus mieux. J’en ai également profité pour coder un petit exporteur pour 3D Studio Max afin d’afficher des objets plus complexes. Un exemple en image:

[NdT: A pu :( ]

Cette petite démo n’existe pas tant pour l’aspect que pour la technique de calcul et de rendu. Elle intègre notament la multiplication de matrices, et le rendu est fait sur le principe Vertex Buffer/Index Buffer cher à nos cartes graphiques, sans pousser toutefois le vice jusqu’à nécessiter des primitives triangulaires.

Lire la suite…

Categories: Code Tags: ,