Cocos Creator 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()替代
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章