使用cocos creator 2.x 遇到的问题及解决办法!持续更新中

  1. setInterval() clearInterval() 方法要成对出现,否则 组件已经被销毁了,但循环方法还在执行! 会有严重后果啊!

  1. 关于获取文本字符串的显示宽度,脚本中会根据文本字符串宽度进行排版,计算位置之类的操作时,要对
    label.string 赋值,然后获取字符宽度
    label._forceUpdateRenderData();
    就可以更新了,但是一定要注意 Label的 Overflow属性 不能是 RESIZE_HEIGHT, <别问我咋知道地,搞了一天才发现!>

代码上 直接复制,立即获取即可

17 关于在代码内的颜色设置,使用字符串表示颜色的时候
官网文档如下

使用的时候如下:

要使用下面那行代码才可以!!!

  1. 关于修改SPINE动画的animation 动画名, 有2种方式 直接修改属性值和 用方法设置

这俩需要区别使用,并不是用哪个都行!!!

一.使用属性的情况

编辑里 找到spine的引用,在脚本里的代码如下

二. 使用方法设置这个动画名

将sp.Skeleton的组件直接引入到脚本里

脚本里直接用方法即可!

这俩不通用, 以免搞错导致动画变更失败啊!

第19粒… 编辑器上无法设置 组件的zIndex; 但如果在脚本上给一个node的zIndex属性改变值
之后在实例化它,zIndex还是会为0

所以在实例化后 再给zIndex设置值吧!

第20例, 如果需要用 富文本 ,记得加上 富文本模块设置!
还有 V2.4.3 必须加一下 Toggle 这个模块

第21粒, 预制体中使用Widget 会使组件不显示! 不信你试试!

第22粒, 安卓APK包的输入法被遮挡问题
修改java文件

这样输入法上就有输入框了!
如下图

另外 需要不显示输入框,使用自己游戏内的输入框
需要根据输入法的高度,来改变自己输入框的位置,
参考 xml java代码

这里没有该处具体值,具体想要的效果可以查查给什么值就好了!

第23粒: 接微信SDK时, 没有回调


画线的3处 包名 要一致, 也就是在CC里设置的包名

另外:很重要
java这边一定要有这个包,而且WXEntryActivity.java也一定放到这个包下面的 .wxapi 包里

还有这句一定要有!

第24粒: 关于 java回调js
Cocos2dxJavascriptJavaBridge.evalString(“cc.js_wxLogin(” + code + “)”);
别再弄这个了,根本不行, 调用简单的JS语句还可以,如果调用自己写的 模块.方法,还加参数,
一定要用 消息通知的形式

java代码:

js代码:

看了一下,当你遇到错误时,先想想为什么是错的,而不是第一感觉是换一种方法。你这些事例我看了,有很多是你用错了。比如widget,是因为你的父节点的大小为0,比如setInterval,这是js的方法,跟组件无关,自然不会跟组件的生命周期挂钩,应该用shedule,安卓调用js那个方法不是不行,是你的字符串拼接错了,而且线程是不是对的。

你说得对,同一个实现,有很多个方法,找不到对应的好办法,只能找一个可以实现的办法了,
比如 java掉js那个,文档就这么一写,试了不好用,网上百度了一下,也没更好的办法!

我这里有不太好的解决办法,你要是有更好的,更准确的,能给解答一下最好啦!

使用这个也是可以的
需要在js代码里添加 jsEngineCallback 这个方法

第25粒 接微信登录 安卓版
image

image

这两个方法最好放到 WXEntryActivity类中



两个方法的 finish();都要有

之前都是放到程序入口Activity里的,
但因为 主入口Activity不能finish(); 所以导致 从微信返回时,程序是被hold的,必须按一下返回键
才可以!现在这么改动一下OK了!

Cocos2dxActivity.java
Cocos2dxEditBox.java

是在引擎里的代码模板
D:\CocosDashboard_1.0.10\resources.editors\Creator\2.4.4\resources\cocos2d-x\cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxActivity.java

如果项目换引擎版本了,记得这里也要相应的修改啊!!!

第26粒:iOS接微信登陆 拿到code后回掉js部分

下面是 js里定义的全局方法,放哪里都成,在登陆之前要执行得到即可
image

第27粒::: 实现一个屏幕点击并穿透,
161828253996800_00_01--00_00_07

上层点击时 不吞噬点击事件,

这两行代码 都可以 ,用哪个都行!

第28粒:
如果你的 Android 项目 Module的 build.gradle 里有
implementation ‘com.android.support:support-compat:28.0.0’
这个包可以去掉了, 去掉后,apk可以减少1MB

还要改 AppActivity.java类里

import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;

上面三个换下面三个
import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;