2008-12-01 10 views
20

Une chose que j'aime vraiment à propos de AS3 sur AS2 est combien plus de vérification de type à la compilation ajoute. Cependant, il semble manquer quelque peu en ce sens qu'il n'existe aucune structure d'énumération vérifiée par type. Quelle est une bonne (meilleure/acceptée) façon de faire des types énumérés personnalisés dans AS3?Énumère dans AS3/Flash/Flex?

Répondre

17

votre réponse après le saut :-)

Enumerations with classes

+0

Bonne réponse, merci! – HanClinto

+0

Le lien est rompu. – Joe

+0

pendant que ma modification est en cours de révision Je pense que ce lien serait similaire à celui fourni à l'origine: [Enumérations avec classes] (http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f2f.html) – gltovar

1

Je sais, c'est un peu obsolète et ne répond pas exactement à votre question, mais vous voudrez peut-être consultez haXe. Vous pouvez également l'utiliser pour générer as3 pour vous, et il y a beaucoup d'autres raisons de l'utiliser. Mais ce serait vraiment hors sujet ...

+0

Cool, merci pour la suggestion! – HanClinto

1

Pour être un vrai ENUM dont il a besoin à la fois:

  • Imposer le type de sécurité
  • prévenir les cas voyous

Peu de solutions simples faire les deux, et la base les classes qui le font sont trop complexes IMO.

Mon favori actuel est le style suivant - sûr et simple, et ne doit pas confondre tout le monde:

public final class FruitEnum { 
    private static const CREATE:Object = {}; 

    public static const APPLE:FruitEnum = new FruitEnum(CREATE); 
    public static const ORANGE:FruitEnum = new FruitEnum(CREATE); 
    public static const BANANA:FruitEnum = new FruitEnum(CREATE); 

    public function FruitEnum(permission:Object) { 
     if (permission !== CREATE){ 
      throw new Error("Enum cannot be instantiated from outside"); 
     } 
    } 
} 

OPPOSITION: Je l'ai vu de rares circonstances où une initialisation variables lit un ENUM const avant il mis , mais dans ces cas, le problème s'appliquait également aux autres émulations enum basées sur const.

Questions connexes