|
|
|
|
TUTORIEL FLASH |
|
|
|
ActionScript 2.0 : la programmation orientée Objet (1) |
Les différences entre AS1 et AS2 sont peu nombreuses, mais cruciales pour appliquer correctement les mécanismes Objet. Explication de la syntaxe et de la construction de classe pour Flash MX 2004.
(22/07/2005) |
|
ActionScript (AS) a bien évolué
entre Flash MX et MX 2004, particulièrement en ce qui concerne
la gestion Objet. Cette évolution n'est pas innocente, et correspond
à celle suivie par le standard ECMA Script (JavaScript) : là
où ActionScript 1.0 (Flash 5 et MX) étaient basés sur ECMA Script
3 (équivalent à JavaScript 1.5), la version 2.0 du langage de
Flash est basée sur ECMA Script 4 (duquel JavaScript 2.0 devrait
être tiré).
Les différences entre les deux standards ECMA Script restent
minimales : le système de typage est plus poussé, et les classes
sont mieux construites, pour simplifier. Autrement, les deux
standards restent très proches, et il en est de même, par extension,
pour AS1 et AS2. AS2 peut donc être jugé légèrement plus
compliqué que AS1, mais guère plus - au point qu'une fois compilé,
les deux langages donnent le même code binaire au sein du fichier
SWF.
Nous allons voir dans cet article les points à enregistrer.
Syntaxe
La syntaxe est probablement ce qui choque le plus pour ceux
qui découvrent AS2 après avoir connu AS1 (ou simplement JavaScript),
et pour commencer le typage des données. Tout comme JavaScript
1.x, AS1 disposait d'un typage faible, c'est à dire qu'une variable
pouvait contenir tout type de données sans problème, et même
passer d'un type à l'autre. Le typage fort de AS2, s'il peut
compliquer la tâche pour une application simple, permet de mieux
se dépêtrer des possibles mélanges lors de la création d'applications
majeures.
En ActionScript 2.0, comme décidé pour ECMA Script 4, la déclaration
du type de données se fait de la manière suivante :
var monBeauSapin:String;
monBeauSapin = "Roi des forêts";
Cette syntaxe "deux-points" diffère largement de ce à quoi sont
habitués les développeurs Java ou C#, à savoir :
String monBeauSapin;
monBeauSapin = "Roi des forêts";
Cette différence résulte d'un choix du comité ECMA Script, et
n'est donc pas imputable aux ingénieurs Macromedia...
Le type d'une variable n'a pas à être redéclarée après une première
utilisation : il suffit d'appeler la variable sans la déclaration
de type pour pouvoir s'en servir :
for (var i:Number = 0; i <= 10; i++)
{ ... }
for (i = 10; i >= 0; i--) { ... }
Classes
Outre les classes habituelles (String,
Boolean, Number)
ou spécifiques (TextField, Date,
Color, ScrollPane,
RadioButton...), la nouvelle
approche Objet de AS2 lui autorise la création de types par
le biais de nouvelles classes et d'interfaces.
La syntaxe de création de classe a de fait également évolué,
et se rapproche de Java avec les propriétés public, private
et static, par exemple :
class Vehicule {
public var vitesse:Number;
public nbrPassagers:Number;
private proprietaire:String;
public function Véhicule() {
vitesse = 0;
nbrPassagers = 0;
}
public demarrer():Boolean
{ ... }
public setVitesse(vitesse:Number):Boolean
{ ... }
private checkEssence():Number { ...
}
private allumeRadio():Void { ... }
}
La création de sous-classe est des plus classiques :
class Voiture extends Vehicule {
public var nbreRoues:Number = 4;
...
}
var maTwingo:Voiture = new Voiture();
maTwingo.nbrPassagers = 1;
|
Forum |
|
Réagissez
dans les forums
de JDN Développeurs
|
À noter que là où AS1 autorisait l'ajout de méthode à une classe
via l'objet __prototype__, AS2
interdit désormais l'ajout d'une méthode à la plupart des classes
lors de l'exécution : toutes les méthodes doivent être définies
dans leurs classes avant exécution.
Par ailleurs, une méthode peut être invoquée avec un mauvais
nombre d'arguments : le compilateur ne fait que vérifier que
ceux-ci ont le bon type ; les arguments en trop ne sont pas
pris en compte, ceux manquants doivent être gérés par la fonction
(via la méthode arguments.length). |
|
|
|
|
|
Quand achetez-vous le plus en ligne ? |
|
|
|
|
|
|
|
|