AnimationData *DataReaderHelper::decodeAnimation(TiXmlElement *_animationXML) { const char* _name = _animationXML->Attribute(A_NAME); // AnimationData *_aniData = (AnimationData*)m_pAnimationDatas->objectForKey(_name); // if (_aniData) // { // //CCLOG("AnimationData (%s) is already exit", _name); // return; // } AnimationData *_aniData = AnimationData::create(); ArmatureData *_armatureData = ArmatureDataManager::sharedArmatureDataManager()->getArmatureData(_name); _aniData->setName(_name); TiXmlElement* _movementXML = _animationXML->FirstChildElement(MOVEMENT); while( _movementXML ) { MovementData *_movementData = decodeMovement(_movementXML, _armatureData); _aniData->addMovement(_movementData); _movementXML = _movementXML->NextSiblingElement(MOVEMENT); } return _aniData; }
CCAnimationData *CCDataReaderHelper::decodeAnimation(cs::CSJsonDictionary &json) { CCAnimationData *aniData = CCAnimationData::create(); const char *name = json.getItemStringValue(A_NAME); if(name != NULL) { aniData->name = name; } int length = json.getArrayItemCount(MOVEMENT_DATA); for (int i = 0; i < length; i++) { cs::CSJsonDictionary *dic = json.getSubItemFromArray(MOVEMENT_DATA, i); aniData->addMovement(decodeMovement(*dic)); delete dic; } return aniData; }
CCAnimationData *CCDataReaderHelper::decodeAnimation(tinyxml2::XMLElement *animationXML) { const char *name = animationXML->Attribute(A_NAME); CCAnimationData *aniData = CCAnimationData::create(); CCArmatureData *armatureData = CCArmatureDataManager::sharedArmatureDataManager()->getArmatureData(name); aniData->name = name; tinyxml2::XMLElement *movementXML = animationXML->FirstChildElement(MOVEMENT); while( movementXML ) { CCMovementData *movementData = decodeMovement(movementXML, armatureData); aniData->addMovement(movementData); movementXML = movementXML->NextSiblingElement(MOVEMENT); } return aniData; }