2012年6月3日 星期日

[ActionScript3] enum in AS3

在ActionScript3裡面沒有enum這個東西可以直接用
不過可以透過宣告靜態(static)與常數(const)來達成我們要的效果

下面舉一個水果盤的列舉集合來作例子
public class SYNBOL_DEFINE
{
        static public const SYM_BLUE_7  :uint = 0; // 藍 7
        static public const SYM_RED_7  :uint = 1; // 紅 7
        static public const SYM_BAR_3  :uint = 2; // BAR 3
        static public const SYM_BAR_2  :uint = 3; // BAR 2
        static public const SYM_BAR_1  :uint = 4; // BAR 1
        static public const SYM_MELON  :uint = 5; // 西瓜
        static public const SYM_BELL  :uint = 6; // 葡萄
        static public const SYM_MANGO  :uint = 7; // 芒果
        static public const SYM_ORANGE  :uint = 8; // 橘子
        static public const SYM_CHERRY  :uint = 9; // 櫻桃
        static public const SYM_I  :uint = 10; // i 寶寶
        static public const SYM_G  :uint = 11; // G
        static public const SYM_JOKER  :uint = 12; // Joker
}

當宣告static代表這個物件是屬於類別而不是實體
所以在使用的時候要使用類別名稱而不是實體名稱
var simple:SYNBOL_DEFINE=new SYNBOL_DEFINE;

simple.SYM_BLUE_7;          // 會產生錯誤
SYNBOL_DEFINE.SYM_BLUE_7    //正確用法


而宣告const的代表他是常數,是無法被變更的

沒有留言: