1.9.3 升级 2.1.2项目填坑总结
以下记录是我在cocos项目升级过程中遇到的问题,依照遇到的错误顺序记录,1.x.x升级2.x.x版本仅供参考。
首先在升级之前可能需要安装两个不同的Cocos Creator版本的编辑器
操作如下:
1. 修改旧版本的根目录名称(如:我的旧版本是1.9.3修改成CocosCreator1_9_3)
2. 到系统的应用管理里面卸载旧版本(因为文件夹名称已经改变,实际不会卸载)
3. 安装新版本
使用最新版编辑器,按提示打开项目后运行,报错如下
-
Failed to load scene: Error: [AssetLibrary] loading JSON or dependencies undefined
定位原因是大部分资源引用丢失导致,需要重新拖动资源。
如sprite-frame引用丢失或动画帧资源引用丢失,都会报此错误 -
语法错误,根据报错提示,定位是cc.loader.getRes(url)造成。
如果请求的是json文件,返回的不再是文件内容对象,外面又封装了一层,需要通过cc.loader.getRes(url).json或取。 -
Uncaught TypeError: cc.director.getVisibleSize is not a function
2.0之后此api更改为cc.view.getVisibleSize(),全局替换后就可。
但是,在实际项目中使用发现,总是会返回设计分辨率,造成项目适配失效,后来改为 cc.view.getFrameSize()解决。 -
输入框样式错位
因为cocos在2.1.1版本对EdiBox组件做了一些升级,所有的项目中的EdiBox组件都需要重新整理一下样式。 -
Sorry, cc.Node.setPositionY is removed, please use y instead.
api调整,全局替换 cc.Node.setPositionY 为 cc.Node.y;
全局替换 cc.Node.setPositionX 为 cc.Node.x; -
其他样式问题
部分mask组件的SpriteFrame挂载会丢失,需要重新拖动
部分ParticleSystem组件的positionType值会变为FREE,需要重新选择 -
Uncaught TypeError: Cannot read property ‘__ONCE_FLAG:load’ of null
还是资源引用造成,在上一个版本中,预制件里面有引用resources的资源,删除后不再报错
=========== 以上是开发环境遇到的问题,还算顺利,总耗时一天=================
-
Web Mobile 平台打包后运行报语法错误
是因为项目使用的自定义打包模板,需要把cc.DebugMode 改为 cc.debug.DebugMode -
同场景下使用的位图资源名称一样,会导致样式问题,比如样式重叠,需要更改位图资源名称在一个场景内唯一,不确定是编辑器原因还是cocos问题。
api调整总结
必须替换的api
cc.DebugMode 改为 cc.debug.DebugMode
cc.Node.setPositionX 改为 cc.Node.x
cc.Node.setPositionY 改为 cc.Node.y
cc.director.getVisibleSize() 改为 cc.view.getVisibleSize() 或使用cc.view.getFrameSize()替代
node.rotation => node.angle
audio: cc.AudioClip => audio: {
default: null,
type: cc.AudioClip // 不在支持url
}
支持暂时平稳过渡的api
cc.pDistance(p1, p2) => p1.sub(p2).mag()
node.convertToNodeSpace => node.convertToNodeSpaceAR
node.convertToWorldSpace => node.convertToWorldSpaceAR
本文记录了从Cocos Creator 1.9.3升级到2.1.2的过程中遇到的问题及解决办法。升级前需保留不同版本编辑器,升级后可能出现资源引用丢失、API变更等问题,如cc.director.getVisibleSize替换为cc.view.getFrameSize,cc.Node.setPositionY替换为cc.Node.y等。此外,输入框样式、EdiBox组件、粒子系统、资源引用等也需要调整。打包Web Mobile平台时,可能需要调整cc.DebugMode并确保位图资源名称在同一场景内唯一。

303

被折叠的 条评论
为什么被折叠?



