Archive

Articles taggués ‘flash10’

"expecting leftbrace before dotlessthan"

23/05/2008 Aucun commentaire

Adobe a publié la semaine passée une première beta du Player Flash 10 (nom de code : Astro), implémentant une mise à jour de l’API de dessin, Hydra et quelques modifications de langages, dont le type Vector.

Je ne reviendrais pas dessus, car c’est un sujet qui a été largement couvert par de nombreux blogs, voici simplement quelques liens :

J’esperais plus des modifications de langage apportées par Astro. Si l’implémentation du proposal:Vector est une excellente chose, l’absence de nombreux éléments des drafts ECMA4 fait mal.

Et là où je déplore le manque, c’est surtout sur l’impossibilité de déclarer des classes génériques personnalisées :

package {
    public class CustomGeneric.
    {
    }
}

Et bim: 1084: Syntax error: expecting leftbrace before dotlessthan.

En lisant la discussion sur les paramètres-types, je m’attendais à pouvoir faire ça de mon côté. Et visiblement non. Dommage… Une prochaine fois? Après tout, ce n’est qu’une première beta.

Allez, salut.

Categories: Code Tags: ,

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: ,