Je me mouille les pieds avec AS3, Flixel et les systèmes composants/entités (oui, tous en même temps), et mes entités (quelle sous-classe FlxSprite) ne sont pas ajoutées correctement (c'est-à-dire pas du tout). Je viens de passer deux bonnes heures à clouer la ligne incriminée. Si je l'enlève, le reste du jeu se déroule avec bonheur.AS3 Indexation d'objets provoquant un mauvais comportement de Flixel - quel est le problème avec ce code?
Quel est le problème avec ce code?
public function addComponent(c:Component):void
{
var type:String = Object(c).constructor.toString();
FlxG.log("type=" + type);
this._components[type] = c; // The evil line
FlxG.log("now type=" + _components[type]);
c.setData(this);
}
components
est un champ objet utilisé comme une carte/dictionnaire. type
est défini sur [class PlayerComponent]
. Basé sur googling, ceci est valide et devrait fonctionner comme prévu.
Basé sur la sortie de la console, il est simplement après cette ligne - ne plante pas complètement. Que se passe-t-il? Plus de détails volontiers offerts sur demande.
Assurez-vous que vous utilisez le lecteur Flash de débogage. Sans cela, les exceptions (accidents) se produisent en silence. –
c'est la 1ère fois que je vois ce chemin pour obtenir le nom de classe de l'objet (je veux dire la méthode constructor.toString()). J'ai préféré utiliser Class (getDefinitionByName (getQualifiedClassName (obj))); – yannicuLar