Cocos2d: jsb: ERROR: File /Users/dcx_JD/Documents/cocos2d-x-2.2.2/scripting/javascript/bindings/generated/jsb_cocos2dx_auto.cpp: Line: 4911, Function: js_cocos2dx_CCNode_removeFromParentAndCleanup
Cocos2d: Invalid Native Object
Cocos2d: JS: /var/mobile/Applications/XXXXXX/Documents/XXX/package/src/XXX/XXX/XXX/XXX:52:Error: Invalid Native Object
以上為bug報錯信息,出現Invalid Native Object這種情況,目前遇到的都是顯示對象造成的,此處流程是這樣:
在一個方法里創建一個動畫armature后,push到了一個數組,然后讓動畫播放指定的動作,等監聽到動畫的complete事件后,就讓armature.removeFromParent(true),
然后在最終的destory里,通過遍歷數組訪問到了這個armature對象,此時使用 armature.getParent() 或者 armature.removeFromParent(true)就會報Invalid native obejct的錯誤。
解決方法就是在動畫complete之后,僅僅removeFromeParent是不行的,還要在此時把armature 從數組中剔除,做到沒有任何地方對其有引用,從而直接銷毀掉,destory里其實就不再處理了