今天我们对剩下的问题进行解答,如有这内容之外的问题我们一七论,ocos2d-x初学者解惑

回调特性有什么作用?

答:可以直接在编辑器里边指定某个控件的事件的处理函数。不再需要一个一个去get控件啦。也不再需要因为修改了控件名或者其他属性后,就得去改程序啦。这些,都可以交给策划了。

对于回调特性的使用方法可以查看此篇教程:http://cn.cocos2d-x.org/tutorial/show?id=2028

问:如何导入Flash?

答:不能导入flash,但可以从flash导出CS项目,然后在放到现有项目中。

具体实现方法可以看插件作者的帖子:http://www.cocoachina.com/bbs/read.php?tid=236927

问:如何创建骨骼动画?

答:CocosStudio v2.x版本没有骨骼动画这个概念,使用现有的动画机制也能够创作比较好的动画效果。若觉得现有机制不足,也可以使用CocosStudio v1.6的动画编辑器进行编辑,然后使用骨骼控件引用到CocosStudio v 2.x中。

问:如何监听各个控件的交互事件?

答:CocosFramework的交互事件有触摸、键盘、焦点和鼠标事件四种。

但是GUI事件一般只涉及触摸事件,且不同控件的交互事件都是由触摸事件扩展而来。

GUI控件用来监听触摸事件的函数有:

addTouchEventListener:触摸事件的完整监听函数,能监听到一次触摸的开始、移动、抬起和取消四种事件。每触发一个事件回调一次设置的监听函数

addClickEventListener:当触发抬起这个触摸事件的时候,回调一次设置的监听函数。

addEventListener:此事件依不同控件有所不同。

问:基于Cocos获取界面上的某个对象进行操作?

答:Cocos Framework的界面对象之间是以树形式组织,节点之间一般是父子级关系。

节点提供了getChildByName和getChildByTag两个接口来支持通过对象的名字和逻辑标签来获取子节点。这两个接口只能获取当前节点的子节点,不能获取子节点的子节点。

另外还有getParent接口,用于获取当前对象的父节点。

问:场景、图层、节点的区别?

答:
美术层面上:

场景文件可视为一个屏幕,不能被嵌套到其他文件中。是游戏中必不可少的元素,可用来创建关卡、菜单等。

节点文件是界面的最基本元素,一般用来存储控件、及制作小动画,以便在其他类型文件中复用。

图层文件通常包含直接在屏幕上呈现的内容,我们需要在图层中加入精灵、文本标签或其他游戏元素,并设置这些元素的属性,如位置、方向和大小以及设置游戏元素的动作等。

技术层面上:

Cocos Framework的界面对象以树形式组织。

节点(Node)是构成树的基本元素,所有能够被挂载到树上的对象都必须继承节点,包括场景和图层对象。

场景(Scene)对象在Framework中一般作为一个界面的入口,即树的根。

图层(Layer),节点的扩展,能够监听游戏的触摸、重力感应、键盘事件。

问:在Cocos Framework中如何加载Cocos创建的界面?

答:对于csb和json文件,可以使用CSLoader对象的createNode接口,传入csb文件和json文件的路径。

对于lua格式的文件,在lua中require对应的文件,然后调用其中的create函数即可。

问:某些情况下执行CSLoader::createNode执行成功,但是将加载出来的节点添加到界面后只有文本,或这没有任何内容,请问怎么解决?

答:Cocos Framework的reader使用绝对路径来定位图片,你可能修改了导出的csb/json文件的路径,但是没有将修改后的路径添加到FileUtils的searchPath中。

问:某些情况下执行CSLoader::createNode返回空值,应该怎么解决?

答:一般是cocos frameWork与cocos studio版本不对应,请将framework升级至cocosstudio对应的版本。

若版本能够对应但依然加载失败,请检查传入createNode的文件的路径,查看加载过程中的输出数据是否有可用的异常信息。