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,需要重新選擇
=========== 以上是開發環境遇到的問題,還算順利,總耗時一天=================
- Web Mobile 平臺打包後運行報語法錯誤
是因爲項目使用的自定義打包模板,需要把cc.DebugMode 改爲 cc.debug.DebugMode
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()替代