se puede echar un vistazo a la variedad de tipos de variables que admite la máquina virtual de ActionScript. Los tipos de variables son anotados por rasgos, la variedad de que se puede encontrar en el specification, tabla 4.8.1:
4.8.1 Summary of trait types
The following table summarizes the trait types.
Type Value
Trait_Slot 0
Trait_Method 1
Trait_Getter 2
Trait_Setter 3
Trait_Class 4
Trait_Function 5
Trait_Const 6
No hay Trait_Enum
y tenga en cuenta que bajo Trait_Const
descripción, únicas constantes de la piscina constante están permitidos, por lo que sería:
- enteros con signo
- enteros sin signo
- duplica
- cadenas
- nombres de tipos y tipos de vectores
enumeraciones se podrían hacer de enteros con o sin signo, por ejemplo, pero la máquina virtual no realizaría ninguna comprobación de seguridad de tipos de las operaciones, que en esos tipos. (Por ejemplo, los códigos de operación getlocal
o coerce
utilizados sería getlocal_i
y coerce_i
, respectivamente.)
El formato ABC no tiene ninguna disposición incorporado para tipos de enumeración, que yo sepa.
El uso de un tipo de objeto para cada valor de enumeración podría trabajar, especialmente si el compilador emite coerce
instrucciones para ese tipo antes de usos de getlocal
y de otra manera no utiliza el objeto que no sea en istype
y astype
variantes. Por ejemplo, llamar al setproperty
o getproperty
en el objeto sería más lento que usar un número entero, especialmente si esa propiedad está vinculada a un método getter o setter.
Hay estilos de reemplazo que se han vinculado en otras respuestas. Para evaluar el impacto en el rendimiento del tiempo de ejecución de estos estilos, puede usar swfdump -D
de la colección de herramientas Flash de código abierto swftoools.
Me gusta el método Scott Bilas. –
Una implementación del método Bilas de Cardin @ github: https://gist.github.com/cardin/1066674 –