Что мне действительно нравится в AS3 по сравнению с AS2, так это то, насколько больше он добавляет проверки типов во время компиляции. Однако, похоже, этого не хватает из-за отсутствия доступной структуры перечисления с проверкой типа. Какой хороший (лучший / приемлемый) способ создания настраиваемых перечислимых типов в AS3?
Просто хотел поделиться мой метод
Немного многословно, но мне это нравится.
Я знаю, что это немного устарело и не совсем отвечает на ваш вопрос, но вы можете проверить Haxe. Вы также можете использовать его для генерации AS3 для вас, плюс есть много других причин для его использования. Но это действительно не по теме ...
Круто, спасибо за предложение!
Недавно я обнаружил, что библиотека as3commons имеет хороший базовый вспомогательный класс Enum для реализации перечислений.
Чтобы быть перечислением правда, необходимо:
Немногие из простых решений делают и то, и другое, а базовые классы, которые делают, слишком сложны IMO.
Сейчас мне больше всего нравится следующий стиль - безопасный и простой, который никого не должен смущать:
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");
}
}
}
ПРЕДОСТЕРЕЖЕНИЕ: я видел редкие случаи, когда инициализация переменной считывала установленное enum const до, но в этих случаях проблема применялась в равной степени к другим эмуляциям перечислений на основе констант.
пока моя правка находится на рассмотрении, я думаю, что эта ссылка будет похожа на ту, что была изначально предоставлена: Перечисления с классами