CreateJs EventDispatcher et Héritage
-
21-12-2019 - |
Question
J'essaie de créer une classe de base qui dispose de la fonctionnalité CreateJs EventDispatcher, puis créez des sous-classes à partir de cette classe de base, mais si j'essaie d'utiliser AddeventListener sur l'instance de sous-classe, je reçois l'erreur:
TypeError: _subClass.addEventListener is not a function
Les constructeurs de mes classes ressemblent à ceci:
var BaseClass = function(id)
{
_instance = this;
_id = id;
createjs.EventDispatcher.initialize(BaseClass.prototype);
};
var SubClass = function(id)
{
BaseClass.call(this, id);
SubClass.prototype = Object.create(BaseClass.prototype);
_instance = this;
};
Comment puis-je le faire fonctionner de manière à ce que la sous-classe hérite de la fonctionnalité de distribution d'événement CreateJs appliquée de BASECLASS?Jusqu'à présent, cela ne fonctionne que si j'applique également le répartiteur de l'événement dans le constructeur de la sous-classe, mais qui défie d'une manière ou d'une autre, le but de l'héritage:
createjs.EventDispatcher.initialize(SubClass.prototype);
La solution
Vous devez initialiser vos prototypes lors de l'initialisation, pas dans le constructeur.Voici un violon mis à jour: http://jsfiddle.net/lannymcnie/qthb4/
var BaseClass = function(id)
{
_instance = this;
_id = id;
};
createjs.EventDispatcher.initialize(BaseClass.prototype);
var SubClass = function(id)
{
BaseClass.call(this, id);
_instance = this;
};
SubClass.prototype = BaseClass.prototype;