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);

Était-ce utile?

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;

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top