笔者今天发现导入cocostudio的ui界面时,会有部分控件出现错位的现象,后来我看了一下源码,发现是部分控件是没有继承

Layout类,导致不能设置控件位置造成,原因可以看看cocos2dx 源码的CCSGUIReader.cpp文件的函数:

Widget* WidgetPropertiesReader0300::widgetFromJsonDictionary(const rapidjson::Value& data)

的最后一段

if (!dynamic_cast<Layout*>(widget))
     {
                        if (child->getPositionType() == ui::Widget::PositionType::PERCENT)
                        {
                            child->setPositionPercent(Vec2(child->getPositionPercent().x + widget->getAnchorPoint().x, child->getPositionPercent().y + widget->getAnchorPoint().y));
                        }
                        child->setPosition(Vec2(child->getPositionX() + widget->getAnchorPointInPoints().x, child->getPositionY() + widget->getAnchorPointInPoints().y));
                    }
                    widget->addChild(child);

从代码中可以看出来,控件需要继承Layout类才能实现位置的设置,而UIPanel类不继承Layout类,所以不会进行位置设置,即使cocostudio有位置设置,

在游戏运行中也不会看到设置位置。

解决cocos2dx 3.x 导入cocostudio的ui界面出现错位问题的更多相关文章

  1. Cocos2d-JS v3.0 alpha 导入 cocostudio的ui配置

    1.在新项目的根文件夹下打开project.json文件,修改: "modules" : ["cocos2d", "extensions", ...

  2. Cocos2d-x3.0 载入Cocostudio的UI后,button无法点击的解决方法

    原帖地址:http://blog.csdn.net/musicvs/article/details/28390617 近期发现不少朋友都遇到这个问题,用Cocostudio的UI编辑器创建好UI后,在 ...

  3. 解决jqplot与jquery-ui导入必要包时的冲突

    解决jqplot与jquery-ui导入必要包时的冲突 对于一个网页中,即要有jqplot的画图,又要有jquery-ui的风格显示! 但在导入必要的包时,出现了问题! 先导入jqplot的必要包: ...

  4. 解决 com.sun.*包导入错误

    解决 com.sun.*包导入错误 com.sun.image.codec.jpeg.*导入错误如何解决: com.sun.*是受限制访问的API,Eclipse 默认把受访问限制的API设成了ERR ...

  5. 解决cocos2dx在Xcode中运行时报:convert: iCCP: known incorrect sRGB profile 的问题

    解决cocos2dx在Xcode中运行时报:convert: iCCP: known incorrect sRGB profile 的问题 本文的实践来源是参照了两个帖子完成的: http://dis ...

  6. cc表示Cocos核心,ccs代表CocoStudio,ccui代表CocoStudio的UI控件

    cc表示Cocos核心,ccs代表CocoStudio,ccui代表CocoStudio的UI控件

  7. Flash Stage3D 在2D UI 界面上显示3D模型问题完美解决

    一直以来很多Stage3D开发者都在为3D模型在2DUI上显示的问题头疼.Stage3D一直是在 Stage2D下面.为了做到3D模型在2DUI上显示通常大家有几种实现方式,下面来说说这几种实现方式吧 ...

  8. 解决Myeclipse通过svn导入项目后,项目直接报错问题

    在使用Myeclipse2015通过SNV导入项目后,项目直接报错,如下图: 点开后报错详细信息如下: Multiple markers at this line - The type java.la ...

  9. Unity中UI界面颤抖解决方法

    将Render Mode中属性改为Screen Space - Camera 摄像机挂在Canvas属性下会出现UI界面颤抖的效果. UI界面颤抖解决方式:将Render Mode中属性改为Scree ...

随机推荐

  1. Python小世界:彻底搞懂Python一切皆对象!!!

    前言 犹记得当初学习Python的时候,对于Python一切皆对象很是懵逼,因为Python是面向对象的动态型语言,而在函数及高阶函数的应用中,如若对于一切皆对象不是有很透彻的了解,基础不是那么牢固的 ...

  2. js 对象深拷贝

    /* *p需要拷贝的对象 * */ var deepCopy=function(p, c) { var c = c || {}; for (var i in p) { if (typeof p[i] ...

  3. 牛客网练习赛34-D-little w and Exchange(思维题)

    链接:https://ac.nowcoder.com/acm/contest/297/D 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

  4. 二开获取yigo设计器里查询集合里中的某个SQL

    package com.bokesoft.lrp_v3.mid.dongming.service; import java.math.BigDecimal; import java.util.Arra ...

  5. 牛客网Java刷题知识点之子类继承不了父类里的(private属性、private方法、构造方法)

    不多说,直接上干货! 子类可以继承父类的属性和方法,除了那些private的外还有一样是子类继承不了的---构造器.对于构造器而言,它只能够被子类调用,而不能被子类继承. 调用父类的构造方法我们使用s ...

  6. redis启动内存不足

    redis-server.exe redis.windows.conf  --maxheap 2gb

  7. 判断网站织梦DedeCms版本的方法

    这个方法可以判断出目标网站所使用的织梦DedeCms是哪个版本的,打了哪一天的补丁. 在需要判断网站织梦版本的的URL路径后面添加/data/admin/ver.txt 如官方的:http://www ...

  8. mysql explain 的extra中using index ,using where,using index condition,using index & using where理解

    using index :查找使用了索引,查询结果覆盖了索引 using where:查找使用了索引,不需要回表去查询所需的数据,查询结果是索引的一部分 using index condition:查 ...

  9. python中__file__

    用__file__ 来获得脚本所在的路径,比如文件在/root下 cat tee #!/usr/bin/env pythonprint __file__              #得到相对路径tee ...

  10. 代码管理_Git中获取两个标签之间的变更代码行数

    操作步骤: 1.先进入git的服务器,定位到 repositories 目录 2.再定位到具体的项目目录(登录bitbucket查看项目属性可以看到项目的存放目录),如下图: 3.浏览项目的标签,命令 ...