Le langage ActionScript > A propos des objets personnalisés > Création d'héritage |
![]() ![]() ![]() |
Création d'héritage
L'héritage est une manière d'organiser, d'étendre et de réutiliser des fonctionnalités. Les sous-classes héritent des propriétés et des méthodes des super-classes, auxquelles elles ajoutent des propriétés et méthodes spécialisées. Par exemple, dans le monde réel, Cycle pourrait être une super-classe dont VTT et Tricycle seraient des sous-classes. Ces deux sous-classes contiennent, ou héritent, les méthodes et les propriétés de la super-classe (par exemple roues
). Chaque sous-classe possède également des propriétés et des méthodes spécifiques qui étendent la super-classe (par exemple, la sous-classe VTT pourrait comporter une propriété pignons
). Vous pouvez utiliser les éléments prototype
et __proto__
pour créer un héritage dans ActionScript.
Toutes les fonctions constructeur ont une propriété prototype
qui est créée automatiquement en même temps que la fonction. La propriété prototype
indique les valeurs de propriétés par défaut des objets créés avec cette fonction. Vous pouvez utiliser la propriété prototype
pour affecter des propriétés et méthodes à une classe. Pour plus d'informations, consultez Affectation de méthodes à un objet personnalisé.
Toutes les occurrences d'une classe possèdent une propriété __proto__
qui indique de quel objet elles sont héritières. Lorsque vous utilisez une fonction constructeur pour créer un nouvel objet, la propriété __proto__
est configurée de manière à faire référence à la propriété prototype
de sa fonction constructeur.
L'héritage fonctionne selon une hiérarchie précise. Lorsque vous appelez la méthode ou la propriété d'un objet, ActionScript vérifie si un tel élément existe dans l'objet. S'il n'existe pas, ActionScript cherche les informations (monObjet.__proto__
) dans la propriété __proto__
de l'objet. Si la propriété n'est pas une propriété de l'objet __proto__
, ActionScript cherche dans monObjet.__proto__.__proto__
, etc.
L'exemple suivant définit la fonction constructeur Cycle
:
function Cycle (longueur, couleur) { this.longueur = longueur; this.couleur = couleur; }
Le code suivant ajoute la méthode roule
à la classe Cycle :
Cycle.prototype.roule = function() {this._x = _x + 20;};
Au lieu d'ajouter une méthode roule
aux classes VTT et Tricycle, vous pouvez créer la classe VTT et définir Cycle comme sa super-classe :
VTT.prototype = new Cycle();
Vous devez ensuite appeler la méthode roule
de VTT, comme ci-dessous :
VTT.roule();
Les clips n'héritent pas les uns des autres. Pour créer un héritage entre clips, vous pouvez utiliser la méthode Object.registerClass
afin d'affecter une classe autre que MovieClip à des clips. Pour plus d'informations, consultez Object.registerClass
dans le dictionnaire ActionScript.
Pour plus d'informations sur l'héritage, consultez Object.__proto__
, #initclip
, #endinitclip
et super
dans le dictionnaire ActionScript.
![]() ![]() ![]() |