感谢您选择唤境Evkworld!在这一篇教程里,我们将学习xml对象。
可以参考视频学习,也可以下拉查看图文讲解
xml的教程视频
xml对象允许我们将大量数据导入到引擎进行使用。例如游戏里所有角色属性的初始信息,如果使用数组或辞典需要对数据一个一个设置储存事件,操作量巨大,而xml文件,可以把所有属性放在一个文件里,直接导入引擎,进行使用。项目里可以有多个xml对象。
xml组件通常时和Ajax对象搭配使用。使用步骤是:先导入外部的xml文件,然后Ajxa请求获取存有数据的xml文件,最后通过xml对象读取到文件,就可以用xml的表达式在条件动作里使用数据了.
那么我们来演示使用步骤,首先我们要将xml文件导入到项目库中
目前XML只支持最基本的xml结构。 具体支持的内容请查看下方教程。
频繁的从xml中读取数据会消耗较多性能,最好的做法是,xml只在游戏开始时加载一次,然后把xml中的内容放置到数组中去使用。
左上方项目库旁边侧栏里,点击资源库
最后面一个是文件。
右边加号,选择添加文件,
上传文件即可。
文件上传完成后,接下来添加xml和Ajax对象。
Ajax对象的动作里,请求项目文件可以获取xml文件数据
当Ajax请求结束时,xml对象读取数据
首先看下,xml文件的结构
使用xml对象的表达式,通过/Game/role这样的路径找到指定数据,比如第一个角色名字“法师” 的路径是/Game/role[1]
xml的索引是从1开始的,与数组有别。完整的xml表达式是XML_1.stringvalue("/Game/role[1]/name")
那么点击按钮文本显示第一个角色的名字,事件如下
可以在预览页的下方调试信息里看到Ajax请求到的数据:
效果如下
完整事件
xml对象有个条件会循环路径下的所有节点,
使用它可以限制路径条件,在动作里可以简化路径表达式。
事件
效果
可以添加变量,用来设置随机数。事件里用该变量当作xml的索引
注意表达式中,使用变量需要这么写:XML_1.stringvalue("/Game/role["&变量&"]/name")
下图中,给role标签加了一个名叫等级的属性。 在唤境中,可以通过属性来定位指定标签
属性的写法为:标签名[@属性名称=‘属性值’]
例如,获取等级为1的role标签下面的name:"/Game/role[@等级='1']/name/text()"
要注意表达式中,属性的值需要用单引号括起来,如果使用变量来表示属性值,需要这么写:"/Game/role[@等级='"&变量&"']/name/text()"