当前,我有两个类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";
...
}
}
}
它们在加载过程中被初始化,并在整个游戏中被保存。
我需要将一个名称和三个索引链接到类名称,因此在给定用户输入的情况下,可以在需要时创建适当的类。
但是,我不想使用动态类。
这里有没有一种不使用动态类的干净方法?
无需为此模型扩展Dictionary
-类中仅包含两个字典:
Dictionary
如果键始终是字符串,则可以将其定义为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和JSON
加载对象,而不是将对象嵌入应用程序中。
JSON