Actionscript 3 使用静态字典类将大量字符串键链接到类
目前,我有两个类MC_Dictionnary_Bad和MC_Dictionnary_Good,初始化如下: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
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]);
}
}
}