cocos2dx ui编辑器生成界面的管理
来源:互联网 发布:4fang软件论坛 编辑:程序博客网 时间:2024/05/08 17:53
说这个问题之前,先说不用各种UI编辑器的时候,开发一个界面的样子。
比如我们要做这样一个界面(图片素材来自百度图片,侵权不怪我。。。)
我们应该肿么处理这个界面,为了代码好看,可以复用等原因,显然是应该分层分组件,就像这样。
然后我们开始编辑代码,分3个layer,每个layer里面加各种按钮,写上各种触发函数。然后其他地方要用,只需要实例化一个对象,addchild就可以了。
但是我们现在有了UI编辑器,比如cocosStudio,在编辑器里面,还是按照上面的步骤,编辑3个UI,一个是头像那一块headNode,一个是下面的菜单栏menuNode,然后再做一个层bgLayer,把2个node加上来。现在就有了3个界面布局文件。
然后程序里面读入。问题来了,这几个布局文件,读入进来,自己就是一个node,我们不能往里面添加代码。
仍然是为了上面的几个原因,现在有2种方法:
1、把每个node单独做到一个父node上面,通过这个父节点,对node里面的东西进行管理。
优点:直观,因为父节点也是一个node,可以直接进行node的添加删除变换等操作,传参方便,理解方便
缺点:多出一层,组件多的话,就会多出很多层。我有心理洁癖。还有一个重要缺点,后面说
2、做一个controller,对这个node进行管理。
优点:不会有方法1的前半部分缺点,符合MVC思想
缺点:不直观不方便。我不喜欢。其实最外层的node就已经是controller了,你要说这样VC混了也好,不科学也好,但是他就是方便。等我层次再高一点体会到这样的缺点了再说。
方法1上面还有一个重要的缺点,就是如果我把菜单栏按方法1做了一个父节点。那对于整个布局文件bgLayer,上面的子空间的那个菜单栏,是没法复用这个代码的,我又只能在这个bgLayer的父控件上面,去又实现一遍这些方法。
暂时没想到其他方法,只有这2种。
都有利有弊,意思就是谈不妥了。然后我找到一个使用很有局限,但是能达到我目的的方法:
大体上采用方法2,做controller,但是这个controller只是一个加工厂,把这些实现函数,附加给node本身。
怎么实现呢?因为lua本来就能这么做。。。把node传进来,然后直接往传入的node上面扩展各种函数,然后返回原来那个node就行了。。。
脚本就是方便啊!!
- cocos2dx ui编辑器生成界面的管理
- cocos2dx 导入使用cocosStudio编辑的UI界面
- cocos2dx异步网络UI界面更新设计
- cocos2dx 3.0 alpha1 + cocostudio UI Editor编辑器
- cocos2dx 3.0 研究(2) ui编辑器
- [cocos2dx笔记011]使用Cocostudio UI编辑器
- cocos2dx的UI
- cocos2dx 3.2 学习篇之一(简单UI界面的添加)
- cocos2dx 3.2 学习篇之一(简单UI界面的添加(续上篇))
- Studio用布局编辑器设计UI界面
- cocos2dx的内存管理
- cocos2dx 的内存管理
- cocos2dx 背包界面的实现
- UI界面的更新
- spark的UI界面
- cocos2dx 3.0结合cocostudio创建界面UI以及特效
- 带自动选项卡生成的后台管理界面
- Redis Admin UI——一个Redis UI管理界面
- Android技术——视图切换(三)ViewAnimator及其子类
- 移除List<T>的元素
- Android线程间通信方式:Handler Looper
- Linked List Cycle II
- POJ 1751 Highways
- cocos2dx ui编辑器生成界面的管理
- 哈佛结构和冯·诺依曼结构
- 提高Java代码质量的Eclipse插件之Checkstyle的使用详解
- 判断单链表里面有没有环
- java.lang.ClassNotFoundException: org.quartz.DisallowConcurrentExecution
- CAN的中断管理
- hadoop mapreduce包含阶段介绍
- 思考1:项目制在创业公司实行的思索
- 泛函编程(13)-无穷数据流-Infinite Stream