我正在研究一个简单的文本 rpg,并将所有数据对象存储为 xml 文件,但我需要能够为许多事情运行一些简单的语句。
我做了一些谷歌搜索,我没有想出太多。
我想做的是采取简单的陈述,例如:
playerhp += 15;
或者
if(playerisvampire == 1) {blah blah;}
并将它们嵌入到 xml 结构中,以便项目或对话行可以包含检查和可执行代码,从而使 rpg 类更像是解释器和接口。这样的事情可能吗?
我正在研究一个简单的文本 rpg,并将所有数据对象存储为 xml 文件,但我需要能够为许多事情运行一些简单的语句。
我做了一些谷歌搜索,我没有想出太多。
我想做的是采取简单的陈述,例如:
playerhp += 15;
或者
if(playerisvampire == 1) {blah blah;}
并将它们嵌入到 xml 结构中,以便项目或对话行可以包含检查和可执行代码,从而使 rpg 类更像是解释器和接口。这样的事情可能吗?
ActionScript 3 不再包含 eval 函数,因此无法直接执行此操作。但是,您可以使用自己的简单解释器手动执行此操作。像这样的东西:
var item:XML =
<health_item>
<action name="hp_change" value="15"/>
</health_item>;
检查 ActionScript 中的动作名称,找到相应的函数并使用“value”参数调用它:
for each (var action:XML in item.action) {
var actionName:String = action.@name;
//switch variant
switch (actionName) {
case "hp_change":
hpChange(action.@value);
break;
//and so on for other known actions
}
//direct call by name variant
if (hasOwnProperty(actionName)) {
this[actionName](action.@value);
} else {
//report error
}
}