关于cocos2d-x 获取ui 控件 为NULL的注意事项

cocos2d-x可以用cocos studio制作静态页面,当我们在代码中操作控件时,就需要用api获取控件来进行操作。对于新手来说,获取控件会出现一些莫名其妙的错误导致程序崩溃,这里主要说一下 获取控件为 NULL 可能出错的地方。

获取ui 控件有两种方式(本人目前只知道两种):

1、通过  父节点->getChildByName("控件名“)   层层获取,这种方法在获取子节点的子节点时,稍显繁琐,可用第二种方式。
2、通过   cocos2d::ui::Helper::seekWidgetByName(基础容器,“控件名”); 获取  这种方法在 获取子节点的子节点时  比较方便。

获取控件时  导致控件地址为 NULL  有以下几种可能(可能总结的不全面):

  1、控件名称与 cocos studio中控件名称不相符 ,尤其注意大小写。

  2、cocos studio 发布资源与代码不同步:

      ①可能是你在cocos studio中编辑好了  但是没有发布资源  这时 在代码中是不能够获取的。

      ②可能是你在cocos studio中已经发布过一次资源 但是在第二次更改时  更改了文件路径 再一次发布,但是在代码中忘了改路径,导致获取为 NULL。(这种情况容易忽视,我就是这种情况 折腾了一天的时间  希望可以帮到大家)。

时间: 2024-10-21 09:19:30

关于cocos2d-x 获取ui 控件 为NULL的注意事项的相关文章

Cocos2d-x3.0游戏实例之《别救我》第六篇——从代码中获取UI控件

这篇的内容很简单,获取UI控件,然后使用它. 还记得我们在UI编辑器中给三个按钮分别命名了吧? 现在要用上了. 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址: http://www.benmutou.com/blog/archives/918 文章来源:笨木头与游戏开发 根据名字查找控件 首先给TollgateScene再include一些头文件,不然等会编译又报错了: #include "editor-support/cocostudio/CCSGUIReader.h&quo

Cocos2d-x3.0 从代码中获取cocostudio编辑的UI控件

依据名字查找控件 须要包括的头文件及名字空间: #include "cocostudio/CocoStudio.h" #include "ui/CocosGUI.h" using namespace cocos2d::ui; using namespace cocostudio; 注:project中须要附加包括的头文件文件夹:$(EngineRoot)cocos\editor-support.由于cocostudio在此文件夹下. 获取UI控件的方法例如以下: m

1cocos2dx扩展库UI控件,CCControlSlider,CCScale9Sprite(九妹图),CCControlSwitch,CCControlButton

 UI控件来自cocos2dx的扩展库,完善了UI方面的元素,使cocos2dx更加丰富多彩.使用扩展库需包含: #include "cocos-ext.h" USING_NS_CC_EXT; CCControlSlider CCControlSlider * slider = CCControlSlider::create("sliderTrack.png","sliderProgress.png","sliderThumb.pn

android_常用UI控件_01_TextView2

显示图片和文字 MainActivity.java package com.example.android_textview_showqqface; import java.lang.reflect.Field; import android.os.Bundle; import android.app.Activity; import android.graphics.Color; import android.graphics.drawable.Drawable; import android

Silverlight项目笔记1:UI控件与布局、MVVM、数据绑定、await/async、Linq查询、WCF RIA Services、序列化、委托与事件

最近从技术支持转到开发岗,做Silverlight部分的开发,用的Prism+MVVM,框架由同事搭好,目前做的主要是功能实现,用到了一些东西,侧重于如何使用,总结如下:   1.UI控件与布局     2.MVVM     3.数据绑定     4.await/async     5.Linq查询     6.WCF RIA Services     7.序列化     8.委托与事件 1.UI控件与布局 常用的主要是Grid.StackPanel.Border,其中最常用的的是Grid,是一

网络操作不能直接写在主线程中 以及 为什么不能在子线程中更新UI控件的属性

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ //注意: 所有网络操作不能直接写在主线程中 因为所有的网络操作都是耗时的,如果加载到主线程中,会导致与用户的交互出现问题 ,所以要加载到子线程中 // [self loadImage]; [self performSelectorInBackground:@selector(loadImage) withObject:nil]; } //加

AndroidUI开源组件库BottomView 第三方自定义UI控件

这里分享一个Android的非常经典实用而且简单方便的第三方UI控件库:BottomView(小米的米UI也用到了这个) 实现功能: 可以在底部弹出的View里自定义布局: 可以自定义是否可以触摸外部消失: 可以自定义事件: 可以自定义外围背景是否透明: 可以自定义动画: 如果需要的话,可以强制为顶部View显示 BottomView.jar库文件下载地址:http://download.csdn.net/detail/jay100500/7547055 BottomView的Demo下载地址:

iOS UI控件7(UITableView)

1.表格(UITableView)与表格控制器(UITableViewController) UITableView是iOS开发中常见的UI控件,本质是一个列表(单列的表格).UITableView允许自由控制行的控件,包括在表格行中添加多个字控件.UITableView继承了UIScrollView,具有UIScrollView的功能,这个UIScrollView主要封装了UITableViewCell单元格控件,因此UITableView默认可以对单元格进行滚动.默认情况下,所有UITabl

【Unity】8.1 Unity内置的UI控件

分类:Unity.C#.VS2015 创建日期:2016-04-27 一.简介 Unity 5.x内置了-套完整的GUI系统,提供了从布局.控件到皮肤的-整套GUI解决方案,因此可直接利用它做出各种风格和样式的GUI界面,并且扩展性很强(程序员可以基于已有的控件创建出适合自己需求的控件). 有两种使用GUI的办法,一种是直接将UI添加到层次视图或者场景视图中,然后通过GUI脚本去控制它:另一种是直接通过GUI脚本去创建. 二.直接添加UI控件到场景中 下图是Unity 5.3.4内置的UI控件,