Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 使用静态字典类将大量字符串键链接到类_Actionscript 3_Flash_Class_Dynamic_Dictionary - Fatal编程技术网

Actionscript 3 使用静态字典类将大量字符串键链接到类

Actionscript 3 使用静态字典类将大量字符串键链接到类,actionscript-3,flash,class,dynamic,dictionary,Actionscript 3,Flash,Class,Dynamic,Dictionary,目前,我有两个类MC_Dictionnary_Bad和MC_Dictionnary_Good,初始化如下: package classes { import flash.utils.Dictionary; public dynamic class MC_Dictionnary_Bad extends Dictionary { public function Custom_Dictionary() { this["m

目前,我有两个类MC_Dictionnary_Bad和MC_Dictionnary_Good,初始化如下:

package classes
{
    import flash.utils.Dictionary;

    public dynamic class MC_Dictionnary_Bad extends Dictionary
    {
        public function Custom_Dictionary()
        {
            this["monster,0,0,0"] = "Monster_Light_Swanp_Red";
            this["monster,0,0,1"] = "Monster_Light_Swanp_Blue";
            this["monster,0,0,2"] = "Monster_Light_Swanp_Yellow";
            this["monster,0,0,3"] = "Monster_Light_Swanp_Dark";
            ...
        }
    }
}
它们在加载过程中被初始化,并在整个游戏过程中像这样保存

我需要将一个名称和三个索引链接到类名,以便在需要时根据用户输入创建适当的类

但是,我不想使用动态类

这里有没有一种干净的方法不使用动态类?

此模型无需扩展-只需在一个类中包含两个字典:

package {
    import flash.utils.Dictionary;

    public final class Game {

        protected var MC_Dictionnary_Bad:Dictionary = new Dictionary();
        protected var MC_Dictionnary_Good:Dictionary = new Dictionary();

        public function Game() {
            initialize();
        }

        protected function initialize():void {
            MC_Dictionnary_Bad["monster,0,0,0"] = "Monster_Light_Swanp_Red";
            MC_Dictionnary_Bad["monster,0,0,1"] = "Monster_Light_Swanp_Blue";
            MC_Dictionnary_Bad["monster,0,0,2"] = "Monster_Light_Swanp_Yellow";
            MC_Dictionnary_Bad["monster,0,0,3"] = "Monster_Light_Swanp_Dark";
        }
    }
}
如果您的键始终是字符串,则可以将其定义为,这样也可以方便地加载数据。该对象可以从url加载,而不是嵌入到应用程序中

package {

    public final class Game {

        protected var monsters:Object = {
                "good": {
                    "monster": {
                        0: {
                            0: {
                                0: "Monster_Light_Swanp_Red",
                                1: "Monster_Light_Swanp_Blue",
                                2: "Monster_Light_Swanp_Yellow",
                                3: "Monster_Light_Swanp_Dark"
                            }
                        }
                    }
                },
                "bad": {
                /* etc... */
                }
            };

        public function Game() {
            // Example accessor:
            trace(monsters["good"]["monster"][0][0][1]);
        }
    }
}