2.2.1 The release of the skeleton animation is incomplete. You need to change the source code to manually release the animation. The release method cannot be placed in the Destructor and onexit () functions.
Step 1 modify the source code: File Location: extensions/cocostudio/armature/utils/ccdatareaderhelper. cpp;
If (pasyncstruct-> ImagePath! = "" & Pasyncstruct-> plistpath! = "") {Pthread_mutex_lock (& s_getfiledatamutex );
(Delete) ccarmaturedatamanager: sharedarmaturedatamanager ()-> addspriteframefromfile (pasyncstruct-> plistpath. c_str (), pasyncstruct-> ImagePath. c_str ());
(Changed to) ccarmaturedatamanager: sharedarmaturedatamanager ()-> addspriteframefromfile (pasyncstruct-> plistpath. c_str (), pasyncstruct-> ImagePath. c_str (), pdatainfo-> filename. c_str (); pthread_mutex_unlock (& s_getfiledatamutex);} ccdatareaderhelper: adddataasynccallback (float DT) {STD: String configpath = pdatainfo-> configfilequeue. front (); pthread_mutex_lock (& s_getfiledatamutex); (delete) ccarmaturedatamanager: Upload ()-> addspriteframefromfile (pasyncstruct-> basefilepath + configpath + ". plist "). c_str (), (pasyncstruct-> basefilepath + configpath + ". PNG "). c_str (); (changed to) ccarmaturedatamanager: sharedarmaturedatamanager ()-> addspriteframefromfile (pasyncstruct-> basefilepath + configpath + ". plist "). c_str (), (pasyncstruct-> basefilepath + configpath + ". PNG "). c_str (), pdatainfo-> filename. c_str (); pthread_mutex_unlock (& s_getfiledatamutex); pdatainfo-> configfilequeue. pop ();}
Step 2: Call the function to delete the skeleton Animation:
Armature-> removefromparent ();
Ccarmaturedatamanager: sharedarmaturedatamanager ()-& gt; removearmaturefileinfo ("armature/123/123. exportjson ");
Cctexturecache: sharedtexturecache ()-> removealltextures ();
The bone animation is released completely.