Je travaille principalement en Java, mais j'ai récemment commencé à utiliser ActionScript 3.0 pour un jeu Flash multi-joueurs que j'aide à développer. Le projet n'en est qu'à ses débuts, et je travaille encore sur la structure des classes. Je continue à me heurter à des limites avec le langage ActionScript lorsque j'essaie d'utiliser les nombreuses fonctionnalités de la POO que j'attends de Java.
Par exemple :
- J'ai besoin d'un résumé
Character
classe. Il n'y a aucune raison pour queCharacter
ne serait jamais instanciée, mais ActionScript ne prend pas en charge les classes abstraites. En conséquence, mon code comporte ce commentaire en haut de page :
Le caractère devrait être une classe abstraite, mais AS ne prend pas en charge les classes abstraites.
NE CRÉEZ PAS D'INSTANCE DE CETTE CLASSE. (N'instanciez que classes qui étendent celle-ci (ex. Player, Zombie))
- En raison de la conception de Flixel (la bibliothèque que nous utilisons), je dois avoir une
CharacterGroup
avec une classe interneCharacter
de sorte que aCharacterGroup
peut également contenir d'autres sprites comme des armes et autres. En Java, j'utiliserais une classe interne. ActionScript ne prend pas en charge les classes internes. Il existe ce qu'on appelle une "classe d'aide", mais les classes d'aide ne sont pas héritées, ce qui les rend inutiles dans ce contexte.
Ma question est la suivante : Est-ce que la capacité d'ActionScript à gérer la conception OOP est simplement moins développée ou est-ce que je trouve ActionScript si frustrant parce que j'essaie de l'écrire comme si c'était Java au lieu de me concentrer sur la façon dont ActionScript a été conçu ?
En d'autres termes, la méthode "correcte" de conception OO est-elle différente en ActionScript et en Java ?
(Note : Je ne demande pas d'avis sur les raisons pour lesquelles ActionScript est meilleur/mauvais que Java. Je demande seulement si je code correctement ou si j'essaie de tirer une trop grande partie de mon expérience de Java).
Gracias.