Instruction class

[dynamic] class className [ extends superClass ] [ implements interfaceName[, interfaceName... ] ] { // Définition de classe ici}

Définit une classe personnalisée, ce qui permet de créer des occurrences des objets qui partagent les méthodes et les propriétés que vous définissez. Par exemple, si vous développez un système de suivi de factures, vous pouvez créer une classe invoice (facturation) qui définit toutes les méthodes et propriétés communes à l'ensemble des factures. Vous pouvez alors exécuter la commande new invoice() pour créer des objets facture.

Le nom de la classe doit correspondre au nom du fichier externe qui contient cette classe. Le nom du fichier externe doit être identique au nom de la classe auquel vient s'ajouter l'extension .as. Par exemple, si vous nommez une classe Stagiaire, le fichier qui définit la classe doit s'appeler Stagiaire.as.

Si une classe appartient à un package, la déclaration de classe doit appliquer le nom de classe entièrement qualifié de la forme base.sub1.sub2.MyClass. De même, le fichier AS de la classe doit être stocké avec son chemin dans une structure d'adresse reflétant la structure du package, telle que base/sub1/sub2/MyClass.as. Si une définition de classe est de forme "class MyClass", elle est dans le package par défaut et le fichier MyClass.as doit se trouver au niveau supérieur d'une adresse dans le chemin.

De ce fait, il est recommandé de planifier votre structure de répertoires avant de commencer la création de classes. En effet, si vous décidez de déplacer les fichiers de classe après leur création, vous devrez modifier les instructions de déclaration de classe pour indiquer leur nouvel emplacement.

Vous ne pouvez pas incorporer des définitions de classe. En d'autres termes, vous ne pouvez pas définir de classes supplémentaires dans une définition de classe.

Pour indiquer que des objets peuvent ajouter des propriétés dynamiques pendant la période d'exécution et y accéder, faites précéder l'instruction class par un mot-clé dynamic. Pour déclarer qu'une classe implémente une interface, appliquez le mot-clé implements. Pour créer des sous-classes d'une classe, appliquez le mot-clé extends. (Une classe ne peut étendre qu'une seule autre classe, mais peut implémenter plusieurs interfaces.) Vous pouvez exécuter implements et extends au sein d'une instruction unique. Les exemples suivants présentent des exemples type des mots-clés implements et extends :

class C implements Interface_i, Interface_j // Correct 
class C extends Class_d implements Interface_i, Interface_j // Correct 
class C extends Class_d, Class_e // Non correct 

Disponibilité : ActionScript 2.0 ; Flash Lite 2.0

Paramètres

className:String - Nom de la classe avec tous ses attributs.

Exemple

L'exemple suivant crée une classe intitulée Plant. Le constructeur Plant réclame deux paramètres.

// Nom de fichier Plant.as 
class Plant { 
 // Définit les noms de propriété et les types 
 var leafType:String; 
 var bloomSeason:String; 
 // La ligne suivante est un constructeur 
 // car elle porte le même nom que la classe 
 function Plant(param_leafType:String, param_bloomSeason:String) { 
 // Affecte les valeurs transmises aux propriétés lorsque le nouvel objet 
 // Plant est créé 
 this.leafType = param_leafType; 
 this.bloomSeason = param_bloomSeason; 
 } 
 // Crée des méthodes pour renvoyer des valeurs de propriété, dans la mesure //où la meilleure pratique 
 // consiste à ne pas référencer directement la propriété d'une classe 
 function getLeafType():String { 
 return leafType; 
 } 
 function getBloomSeason():String { 
 return bloomSeason; 
 } 
}

Dans un fichier de script externe ou dans le panneau Actions, utilisez l'opérateur new pour créer un objet Plant.

var pineTree:Plant = new Plant("Evergreen", "N/A"); 
// Confirme que les paramètres ont été passés correctement 
trace(pineTree.getLeafType()); 
trace(pineTree.getBloomSeason()); 

L'exemple suivant crée une classe intitulée ImageLoader. Le constructeur ImageLoader réclame trois paramètres.

// Nom de fichier ImageLoader.as 
class ImageLoader extends MovieClip { 
 function ImageLoader(image:String, target_mc:MovieClip, init:Object) { 
 var listenerObject:Object = new Object(); 
 listenerObject.onLoadInit = function(target) { 
 for (var i in init) { 
 target[i] = init[i]; 
 }
 }; 
 var JPEG_mcl:MovieClipLoader = new MovieClipLoader(); 
 JPEG_mcl.addListener(listenerObject); 
 JPEG_mcl.loadClip(image, target_mc); 
 } 
} 

Dans un fichier de script externe ou dans le panneau Actions, utilisez l'opérateur new pour créer un objet ImageLoader.

var jakob_mc:MovieClip = this.createEmptyMovieClip("jakob_mc", this.getNextHighestDepth()); 
var jakob:ImageLoader = new ImageLoader("http://www.helpexamples.com/flash/images/image1.jpg", jakob_mc, {_x:10, _y:10, _alpha:70, _rotation:-5});

Voir aussi

Instruction dynamic