Sie einen Blick auf die Vielzahl von Variablen-Typen nehmen unterstützt durch die ActionScript-virtuelle Maschine. Variablentypen sind mit Anmerkungen versehen von Zügen, die Vielfalt von denen in den specification, Tabelle 4.8.1 zu finden:
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
Es gibt keine Trait_Enum
und beachten Sie, dass unter Trait_Const
Beschreibung nur Konstanten aus dem konstanten Pool sind erlaubt, so dass wäre:
- unterzeichneten ganze Zahlen
- ganze Zahlen ohne Vorzeichen
- verdoppelt
- Saiten
- Typnamen und Vektortypen
Aufzählungen von mit oder ohne Vorzeichen ganze Zahlen vorgenommen werden könnten, zum Beispiel, aber die virtuelle Maschine jeder Art-Sicherheitsüberprüfung der Operationen nicht durchführen würde, die verwendet diese Arten. (Zum Beispiel des getlocal
oder coerce
Opcodes verwendet würde getlocal_i
und coerce_i
, respectively.)
Das ABC-Format hat keine eingebaute in Bereitstellung für Aufzählungstypen, die ich kenne.
einen Objekttyp für jeden Enum-Wert verwenden könnte funktionieren, vor allem, wenn der Compiler coerce
Anweisungen für diese Art vor der Verwendung von getlocal
emittiert und ansonsten das Objekt nicht verwenden, anders als in istype
und astype
Varianten. Beispielsweise wäre das Aufrufen von setproperty
oder getproperty
für das Objekt langsamer als die Verwendung einer Ganzzahl - insbesondere, wenn diese Eigenschaft an eine Getter- oder Setter-Methode gebunden ist.
Es gibt Ersatz Stile, die in anderen Antworten in Verbindung gebracht wurden. Um die Auswirkungen dieser Stile auf die Laufzeitleistung zu bewerten, können Sie swfdump -D
aus der Open-Source-Tool-Sammlung swftoools verwenden.
Ich mag die Scott Bilas Methode. –
Eine Implementierung der Bilas Methode von Cardin @ Github: https://gist.github.com/cardin/1066674 –