documentation flash class

Vous êtes ici: Les articles techniques » documentation » Eléments du langage ActionScript » Instruction class

Instruction class

[dynamic] class //className// [ extends //superClass// ] [ implements //interfaceName//[, //interfaceName//... ] ] { 
 // class definition here
}

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 utiliser 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 utiliser 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, utilisez le mot-clé implements. Pour créer des sous-classes d’une classe, utilisez le mot-clé extends. (Une classe ne peut étendre qu’une seule autre classe, mais peut implémenter plusieurs interfaces.) Vous pouvez utiliser 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 // OK 
class C extends Class_d implements Interface_i, Interface_j // OK 
class C extends Class_d, Class_e // not OK

Disponibilité : Flash Player 6 ; ActionScript 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.

// Filename Plant.as 
class Plant { 
 // Define property names and types 
 var leafType:String; 
 var bloomSeason:String; 
 // Following line is constructor 
 // because it has the same name as the class 
 function Plant(param_leafType:String, param_bloomSeason:String) { 
 // Assign passed values to properties when new Plant object is created 
 this.leafType = param_leafType; 
 this.bloomSeason = param_bloomSeason; 
 } 
 // Create methods to return property values, because best practice 
 // recommends against directly referencing a property of a class 
 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"); 
// Confirm parameters were passed correctly 
trace(pineTree.getLeafType()); 
trace(pineTree.getBloomSeason());

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

// Filename 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 également




veille
inscrits inscrits ! Compensation à la rédaction
  • Inscription au wiki
  • Connexion

vod