Comment définir enum en as3?
Est-il un moyen de définir un enum en AS3 dans une manière dont nous le faisons dans d'autres langues? Je peux définir des constantes avec des valeurs définies comme suit:
private const CONST_1:int = 0;
private const CONST_2:int = 1;
private const CONST_3:int = 2;
et ainsi de suite. Si je veux insérer quelques autres constant entre ces 3 j'ai besoin de déplacer toutes les valeurs comme ceci:
private const CONST_1:int = 0;
private const CONST_2:int = 1;
private const CONST_2A:int = 2;
private const CONST_3:int = 3;
tandis que dans d'autres langue que je finirais avec seulement l'ajout d'un nouveau membre enum fermeture comme ça:
enum {
CONST_1 = 0,
CONST_2,
CONST_2A,
CONST_3
} MyConstEnum;
Ne AS3 a quelque chose de similaire?
Grâce
Vous devez vous connecter pour publier un commentaire.
Pas AS3 n'a pas enum, vous avez le code vous-même. Vous pouvez simuler, par exemple, par une classe, si vous voulez plus sûr de vérification de type :
Vous pouvez prendre un coup d'oeil à la variété des types de variables prises en charge par la Machine Virtuelle ActionScript. Les types de variables sont annotés par traits, la variété de ce qui peut être trouvé dans la spécification, tableau 4.8.1:
Il n'y a pas de
Trait_Enum
et note que, en vertu deTrait_Const
description, seules les constantes de la constante piscine sont autorisés, donc, ce serait:Enums pourrait être signé ou non signé entiers, par exemple, mais la machine virtuelle ne serait pas effectuer tout type de vérification de la sécurité des opérations qui ont utilisé ces types. (E. g., le
getlocal
oucoerce
opcodes utilisé seraitgetlocal_i
etcoerce_i
, respectivement.)Le format ABC n'ont pas intégré disposition pour types enum, que je sache.
À l'aide d'un type d'objet pour chaque valeur d'énumération pourrait fonctionner, surtout si le compilateur émet
coerce
instructions pour ce type avant utilise degetlocal
et sinon, n'utilise pas d'autre objet que dansistype
etastype
variantes. Par exemple, l'appelsetproperty
ougetproperty
sur l'objet serait plus lent que d'utiliser un entier, surtout si cette propriété est liée à un getter ou un setter de la méthode.Il y a remplacement de styles qui ont été liés à d'autres réponses. Pour évaluer les performances d'exécution de l'impact de ces styles, vous pouvez utilise
swfdump -D
de la swftoools open source outils Flash collection.