[cocos2d-x] 资源json的载入过程

这块代码主要是文件CCSGUIReader  
 
CCSGUIReader 的作用是解析json组合成用户需要的UIWiget对象.

实例:

Widget* m_uiRoot = cocostudio::GUIReader::shareReader()->widgetFromJsonFile("fruit_ui_1.json");

-》

往下面走

return widgetFromJsonDocument(jsonDict, fileName, NULL);

jsonDict:读到的json文件内容,fileName json文件名

-》

再往下走

widget = pReader->createWidget(jsonDict, m_strFilePath.c_str(), fileName);

通过jsonDict里面的配置和属性 构造widget

-》

Widget* widget = widgetFromJsonDictionary(widgetTree);

-》

int childrenCount = DICTOOL->getArrayCount_json(data, "children");
for (int i = 0; i < childrenCount; i++)
{
const rapidjson::Value& subData = DICTOOL->getDictionaryFromArray_json(data, "children", i);
cocos2d::ui::Widget* child = widgetFromJsonDictionary(subData);

此处会层层展开精灵的子精灵 比如一个panel下面多个button 会依次回调 widgetFromJsonDictionary初始化button属性,当此panel下的精灵全部通过

widget->addChild(child);

添加到widget后 继续添加设置下一个同层次的精灵。

[cocos2d-x] 资源json的载入过程,布布扣,bubuko.com

时间: 2024-12-18 11:29:40

[cocos2d-x] 资源json的载入过程的相关文章

C++实现第三方资源释放与载入过程(以DLL为例)

简介 我们经常看见有一些程序开始执行时会释放一些文件,以便于后续操作.例如一些病毒为了便于传播和隐藏,经常把一些需要用的动态库或是驱动文件打包进一个可执行文件中,再由需要使用的时候,再临时释放和加载.接下来笔者就将演示如何将DLL打包进文件,并实现动态释放和加载. 实现流程 开发工具:Visual Studio 2017 1.在项目工程上点击右键,选择"添加资源": 2.选择"自定义资源" 3.命名自定义资源类型后,重新添加资源,选中自定义的类型名字,并点击&quo

jvm载入过程

类载入过程 类从被载入到虚拟机内存中開始,到卸载出内存为止,它的整个生命周期包含:载入.验证.准备.解析.初始化.使用和卸载七个阶段.它们開始的顺序例如以下图所看到的: 当中类载入的过程包含了载入.验证.准备.解析.初始化五个阶段.在这五个阶段中,载入.验证.准备和初始化这四个阶段发生的顺序是确定的.而解析阶段则不一定,它在某些情况下能够在初始化阶段之后開始,这是为了支持 Java 语言的执行时绑定(也成为动态绑定或晚期绑定). 另外注意这里的几个阶段是按顺序開始,而不是按顺序进行或完毕,由于这

Linux内核启动及根文件系统载入过程

上接博文<u-boot之u-boot-2009.11启动过程分析> Linux内核启动及文件系统载入过程 当u-boot開始运行bootcmd命令,就进入Linux内核启动阶段.与u-boot类似,普通Linux内核的启动过程也能够分为两个阶段,但针对压缩了的内核如uImage就要包含内核自解压过程了.本文以linux-2.6.37版源代码为例分三个阶段来描写叙述内核启动全过程.第一阶段为内核自解压过程,第二阶段主要工作是设置ARM处理器工作模式.使能MMU.设置一级页表等,而第三阶段则主要为

[读书笔记]Java类载入过程

一. 类的生命周期 类从被载入到虚拟机内存中開始,到卸载出内存为止,有下面(如图)的生命周期: 以上"载入->验证->准备->解析->初始化"称为类的载入过程. Java虚拟机规范中没有对什么时候须要開始类载入的第一阶段进行强制约束,而是交给了虚拟机依据详细实现来自由把握. 可是对于初始化阶段,虚拟机有下面5种必须对类立即进行"初始化"的情况: (1)遇到new.getstatic.putstatic或invokestatic这4条字节码指令

深入理解PHP原理之扩展载入过程

why xdebug extension must be loaded as a zend extension? what is zend extension and what are the differents between regular php extension and zend extension? let's start from that the extension loading process. PHP是可以被扩展的, PHP的核心引擎Zend Engine也是可以被扩展的

Springmvc框架-json数据格式传递过程中-将时间戳转化成标准的日期格式[email&#160;protected]

在上一个小demo中,我们能够看出,其实返回的日期格式也是不对的,现在返回的是一个时间戳,并不是一个标准的日期格式. 解决办法: 第一种:在要转化的实体类中添加@JSONField注解 第二种:配置fastjson的消息转换器,来处理日期格式的问题 springmvc-servlet.xml 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.spring

springMVC和Json的交互(就是后台解析json字符串和向前台传递json字符串的过程)

springMVC中和json的交互:主要分为两点,一是传递过来的是json字符串,springMVC会先进行解析,二是传递过来的是key:value那么springMVC可以不进行解析,这里的解析指的是json和java对象之间的转换 java对象:就是实体类的对象 首先先来看一张交互的图: 分析: 1.从这个图中我们可以看出来,前台请求的数据如果是json字符串,我们需要用@RequestBody先将json字符串转成java对象,然后前台传输的是java对象的时候就需要用@Response

COCOS2D - JS 之JSON 解析

list 类型的json数据 var source = ["10004","1234","4","3","1.5","0.5"] var res= JSON.parse(source ); res[0] 10004 res[1] 1234 对象类型的json数据解析 var source = {"uid":0,"userId":"124&

cocos2d学习资源收集

    在知乎上看到的某个关于<自学 cocos2d 游戏开发应该按什么步骤进行?>这个问题的某个答案,感觉应该很不错,可以先收藏下来,以后需要了再回来看看~ Cocos2d-x网站列表 CocoaChina(官方网站,不解释) 泰然网(貌似最近有很多不错的文章,不过早期的文章质量一般) Cocos2d-x博客列表 老G的小屋 小满的专栏 子龙山人 红孩儿的游戏编程之路 Cocosdev 黑米GameDev街区 优秀cocos2d-x源码 Code4app 代码仓库 cocos2d-x与ios