tonari note

オンラインゲームエンジニアの雑記

AS3での列挙体のお話

AS3には列挙体(Enum)が無かったりするのですが、公式リファレンスだとクラスで代用してね、ということだそうです。
ActionScript のオブジェクト指向プログラミング
これだと確かに列挙はできるのですが、C#のようなint型への変換やFlags化がしにくいのでちょっと手を加えます。

このようにIEnumインターフェイスを定義して、実装します。

interface IEnum 
{
    function toInt():int;
}

class final JobType implements IEnum
{
    // Enum の各要素
    public static const Knight:JobType = new JobType(0);
    public static const Magician:JobType = new JobType(1);
    public static const DebugJob:JobType = new JobType(100);

    // Enum の実装
    private var _value:int;

    public function Hoge(value:int)
    {
        _value = value;
    }

    public function toInt():int
    {
        return _value;
    }
}