美文网首页cocos 2dx
cocos2d-x中 关于.plist文件的解析

cocos2d-x中 关于.plist文件的解析

作者: invalid_name | 来源:发表于2016-06-05 17:16 被阅读495次

在cocos2d-x中可以用.plist格式的文件来保存数据,它是XML文件格式的一种,在网上搜索了一下发现关于这方面的资料好像不多,而且不够全面,所以自己研究了一下做个分享,plist文件的解析其实很简单,可以参考cocos2d-x类库中的CCSpriteFrameCache类和CCParticleSystem类,它主要是使用CCDictionary类来对.plist文件进行操作。比较复杂一点的里面会混有CCArray 的数据格式。比如下面这个:

Paste_Image.png

上图中的结构是以 dict 开头解析方法如下:

    --加载Plist文件  
    local musicDic   = CCDictionary:createWithContentsOfFile("xxxx/xxxx.plist")
    --按key名称获取数组中数据
    local musicArray = musicDic:objectForKey("ForestPolka")
    ---获取数组元素数量
    local count = musicArray:count()
    -- 用两个表存储获数据
    local keyboard = {}
    local duration = {}
    for i = 1, count do
        --按索引获取数组中所有字典 [第一个位置为 0 ]
        local dic = musicArray:objectAtIndex(i - 1) 
        --根据键获取对应的值
        local key = dic:objectForKey("keyboard"):floatValue()
        local time = dic:objectForKey("musicDuration"):floatValue()
        --将解析出来的数据放入表中以便使用
        table.insert(keyboard, key)
        table.insert(duration, time)
    end 

如果文件中是以 <array> 开头的话就要把文件内容加载到 CCArray 的数据结构内存中:

Paste_Image.png

加载的方法和 CCDictionary 是一样的:
local musicArr = CCArray:createWithContentsOfFile("xxx/xxx.plist")
接下来的数据和上面第一张图以<dict>开头结构是一样的,可以获取出数组的数量,这里只有一个,我们直接按索引取出这个 dict (第一个索引是0):
local dictionary = musicArr:objectAtIndex(0)

之后的方法完全一模一样:

    --获取ForestPolka中的数组
    local arr = dictionary:objectForKey("ForestPolka")
    --数组元素数量
    local count = arr:count() 

    local keyboard = {}
    local duration = {}

    for i = 1, count do
        local dic = arr:objectAtIndex(i - 1) 
        local key = dic:objectForKey("keyboard"):floatValue()
        local time = dic:objectForKey("musicDuration"):floatValue()
        
        table.insert(keyboard, key)
        table.insert(duration, time)
    end

类似这些的文件解析过程都很简单,只要看清楚里面的数据结构,用对应的方法一层层剥开,就能获取到想要的数据。

相关文章

  • cocos2d-x中 关于.plist文件的解析

    在cocos2d-x中可以用.plist格式的文件来保存数据,它是XML文件格式的一种,在网上搜索了一下发现关于这...

  • UI-plist、懒加载、封装、模型

    1、加载plist文件 文件名不为 info.plist 接下来通过代码来解析Plist文件中的数据获得Plist...

  • IOS总结(二)

    1什么是Plist文件?如何解析Plist文件 一般可以使用属性列表文件存储NSArray或者NSDictiona...

  • iOS 数据共享 - plist文件

    1. OC 解析plist文件 plist文件以类似键值对(key - value)的形式,存储项目中的各种数据 ...

  • 1.页面搭建

    利用代码来搭建界面。 plist文件内容 可见视图所需要的属性 解析plist文件,创建模型 AppModel.h...

  • iOS App的启动过程

    1.iOS系统首先会加载解析该app的info.plist文件,因为info.plist中包含了支持app加载进行...

  • java 解析ipa文件 中的plist

    在eclipse 中安装 windowbuilderhttp://download.eclipse.org/wi...

  • 关于plist解析

    目的:将所有的字典转成模型 优点:方便管理 注意: 1.如果plist中的字典在同一个数组中,也需要将字典转化为模...

  • IOS加载plist文件、懒加载与数据模型相关

    现有dogs.plist文件如下 1.如何加载plist文件呢? 2.数据懒加载 按照上面的方式打印,每次都得解析...

  • iOS学习笔记3

    Plist文件 加载Plist文件先获取文件路径在将Plist文件传入数组或者字典中 常见问题 项目中某个.m文件...

网友评论

    本文标题:cocos2d-x中 关于.plist文件的解析

    本文链接:https://www.haomeiwen.com/subject/cgrrdttx.html