Una cosa que realmente me gusta de AS3 sobre AS2 es la cantidad de comprobación de tipo de tiempo de compilación que agrega. Sin embargo, parece ser algo deficiente en que no hay una estructura de enumeración verificada por tipo disponible. ¿Cuál es una buena (mejor/aceptada) forma de hacer tipos enumerados personalizados en AS3?¿Enumerados en AS3/Flash/Flex?
Respuesta
su respuesta después del salto :-)
lo sé, esto es un poco anticuado y no responde exactamente a su pregunta, pero es posible que quieras echa un vistazo a haXe. También puede usarlo para generar as3 para usted, además de que hay muchas otras razones para usarlo. Pero esto realmente saldría del tema ...
Cool, gracias por la sugerencia! – HanClinto
Recientemente descubrí que as3commons library tiene una buena clase base de ayuda Enum para la implementación de enums.
Con el fin de ser un cierto enum que necesita para los dos:
- Enforce seguridad de tipo
- prevenir los casos deshonestos
Pocas de las soluciones simples hacer ambas cosas, y la base las clases que sí lo son son demasiado complejas.
Mi favorito actual es el siguiente estilo - seguro y simple, y no se debe confundir a nadie:
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");
}
}
}
advertencia: He visto raras circunstancias en que una variable de inicialización lee un const enumeración antes se establece , pero en esos casos el problema se aplica igualmente a otras emulaciones de enumeraciones basadas en const.
- 1. Componer enumerados en el enumerador
- 2. ¿Enumerados o tablas?
- 3. Rails Tipos enumerados o alternativas
- 4. Enumerados y cuadros combinados en C#
- 5. ¿Cómo creo tipos enumerados en MATLAB?
- 6. Enumerados y conflictos de nomenclatura de propiedades
- 7. valores de Asignación de tipos enumerados
- 8. Secciones personalizadas para objetos enumerados de matriz en NSOutlineView
- 9. Cómo pasar valores enumerados a un servicio web
- 10. Suprimir los nombres de directorio enumerados con DIR
- 11. Java: Desempeño de Enumerados contra if-then-else
- 12. ¿Cómo puedo extender un molde léxico para admitir tipos enumerados?
- 13. ¿Hay alguna manera de cambiar el orden de los constructores enumerados en IntelliSense en Visual Studio?
- 14. ¿La mejor manera de descargar todos los artefactos enumerados en un archivo cache.manifest de HTML5?
- 15. Java Enums: enumerar los valores enumerados de una clase <? extiende Enum>
- 16. ¿El mejor método para crear una ruta absoluta en PHP? (Ver 3 métodos enumerados en el interior)
- 17. ¿Cómo se iteran los tipos enumerados inicializados con Delphi 6 y se evita el error "fuera de límites"?
- 18. ¿Cómo obtener la cantidad de elementos en un cuadro combinado?
- 19. ¿Qué es el miembro entre corchetes [...] cuando se visualiza en "Mirar"?
- 20. Will `typedef enum {} t` permite identificar los identificadores de elemento enum en C++ 0x?
- 21. Entradas en/proc/meminfo
- 22. Dónde debe almacenarse la documentación del proyecto en un proyecto típico de maven
- 23. ¿Puedo tener dos disparadores de inserción diferentes en la misma tabla?
- 24. PROGNAME (x) refrences en páginas de manual: ¿qué significa el dígito in() s?
- 25. Parámetros de función en PowerShell
- 26. Seguridad de rieles en el servidor de producción
- 27. iOS ¿Los métodos invocados por los delegados y observadores se ejecutan en el hilo principal?
- 28. Cómo habilitar/deshabilitar mediante programación el servicio de accesibilidad en Android
- 29. Traduciendo Java bytecode en otras representaciones y lenguajes de programación
- 30. esquema de dispositivo duplicado en xcode 4
¡Buena respuesta, gracias! – HanClinto
El enlace está roto. – Joe
mientras mi edición está siendo revisada Creo que este enlace sería similar al proporcionado originalmente: [Enumeraciones con clases] (http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f2f.html) – gltovar