Esempio n. 1
0
void CJPsdParser::parseToPsdXML(std::string strPsdFileName,
                                cocos2d::CCDictionary **pPsdDict,
                                bool bIsCommonPath /* = false */)
{
    CJPsdParser *psdParser = new CJPsdParser();
    psdParser->_setPsdData(pPsdDict);
    
    std::string rootPath;
    if (!bIsCommonPath) {
        rootPath = CJUtils::getInstance()->getResourcePath();
    }
    else
    {
        rootPath = CJUtils::getInstance()->getCommonResourcePath();
    }
    std::string tempFileName = rootPath.append("xml/");
    tempFileName.append(strPsdFileName);

    
    CCSAXParser xmlParser;
    xmlParser.init(ENCODE_TYPE_UTF8);
    xmlParser.setDelegator(psdParser);
    xmlParser.parse(tempFileName.c_str());
    
    delete psdParser;
}
element_list_t* RSimpleHTMLParser::parseHTMLString(const char* utf8_str)
{
	CCSAXParser parser;
	if ( !parser.init("UTF-8") )
	{
		CCLog("[CCRich] CCSAXParser.init failed!");
		return NULL;
	}

	parser.setDelegator(this);

	element_list_t* elelist = new element_list_t;
	m_rElements = elelist;
	m_rCurrentElement = NULL;

	if ( !parser.parse(utf8_str, strlen(utf8_str)) || elelist->empty() )
	{
		CC_SAFE_DELETE(elelist);
	}

	m_rCurrentElement = NULL;
	m_rElements = NULL;

	return elelist;
}
Esempio n. 3
0
void AnimatePacker::loadAnimations(const char *path )
{
	const char *pszPath = CCFileUtils::sharedFileUtils()->fullPathForFilename(path).c_str();

	CCSAXParser parser;
	AnimateSaxDelegator delegator;

	if (false == parser.init("UTF-8"))
	{
		//TODO
		return;
	}
	parser.setDelegator(&delegator);
	parser.parse(pszPath);

	//load plist
	vector<string> plists=delegator.plists;
	for (unsigned int i=0;i<plists.size();i++)
	{
	    string plistPath = CCFileUtils::sharedFileUtils()->fullPathFromRelativeFile(plists[i].c_str(), pszPath);
		CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile(plistPath.c_str());
	}

	//load animate
	vector<Animate> animates=delegator.animates;
	CCArray *spriteFramesArray = new CCArray();

	set<string> animateNames;
	for (unsigned int i=0;i<animates.size();i++)
	{
		Animate animate=animates[i];
		vector<string> spriteFrames=animate.spriteFrames;

		for (unsigned int j=0;j<spriteFrames.size();j++)
		{
			animateNames.insert(spriteFrames[j]);
			CCSpriteFrame *spriteFrame=CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(spriteFrames[j].c_str());
			spriteFramesArray->addObject(spriteFrame);
		}

		CCAnimation *animation = CCAnimation::createWithSpriteFrames(spriteFramesArray);
        animation->setDelayPerUnit(animate.delay);
		CCAnimationCache::sharedAnimationCache()->addAnimation(animation,animate.name.c_str());

		spriteFramesArray->removeAllObjects();
	}
	
	//record animate
	for(unsigned int i=0;i<animates.size();i++){
		Animate animate=animates[i];
		nameToAnimateMap[animate.name]=animate;
	}

	//record plist
	pathToPlistsMap[path]=plists;

	//record CCAnimate name
	pathToNameMap[path]=animateNames;
}
	CCDictionary<std::string, CCObject*> *dictionaryWithContentsOfFile(const char *pFileName)
	{
		CCSAXParser parser;
		parser.init(NULL);
		parser.setDelegator(this);
		parser.parse(pFileName);
		return m_pRootDict;
	}
Esempio n. 5
0
bool MyXmlParser::initWithFilename(const char *filename)
{
    dic = CCDictionary::create();
    dic->retain();
    CCSAXParser *parser = new CCSAXParser();
    parser->setDelegator(this);
    parser->init("UTF_8");
    parser->parse(filename);
}
Esempio n. 6
0
bool CCTMXMapInfo::parseXMLFile(const char *xmlFilename)
{
    CCSAXParser parser;
    
    if (false == parser.init("UTF-8") )
    {
        return false;
    }
    
    parser.setDelegator(this);

    return parser.parse(CCFileUtils::sharedFileUtils()->fullPathForFilename(xmlFilename).c_str());
}
bool CCTMXMapInfo::parseXMLFile(const char *xmlFilename)
{
    CCSAXParser parser;
    
    if (false == parser.init("UTF-8") )
    {
        return false;
    }
    
    parser.setDelegator(this);

    return parser.parse(xmlFilename);    
}
Esempio n. 8
0
    CCDictionary *dictionaryWithContentsOfFile(const char *pFileName)
    {
        m_eResultType = SAX_RESULT_DICT;
        CCSAXParser parser;

        if (false == parser.init("UTF-8"))
        {
            return NULL;
        }
        parser.setDelegator(this);

        parser.parse(pFileName);
        return m_pRootDict;
    }
Esempio n. 9
0
    CCArray* arrayWithContentsOfFile(const char* pFileName)
    {
        m_eResultType = SAX_RESULT_ARRAY;
        CCSAXParser parser;

        if (false == parser.init("UTF-8"))
        {
            return NULL;
        }
        parser.setDelegator(this);

        parser.parse(pFileName);
        return m_pArray;
    }
	//2013.5.31 wangtiwei
	CCDictionary* dictionaryWithData(unsigned char* data)
	{
		m_eResultType = SAX_RESULT_DICT;
		CCSAXParser parser;
        
		if (false == parser.init("UTF-8"))
		{
			return NULL;
		}
		parser.setDelegator(this);
		unsigned int udataLength = strlen((char*)data);
		parser.parse((char*)data, udataLength);
		return m_pRootDict;
	}
Esempio n. 11
0
void HelloWorld::saxDelegatorParse()
{
	char filePath[1024]= {'\0'};
	memset(filePath,0,sizeof(filePath));
	strcat(filePath,CCFileUtils::sharedFileUtils()->getWriteablePath().c_str());
	strcat(filePath,"CreatedXml.xml");

	CCSAXParser *parser = new CCSAXParser();
	parser->setDelegator(this);
	parser->init("UTF-8");
	parser->parse(filePath);

	delete parser;
}
	///2013.5.31
	CCArray* arrayWithData(unsigned char* data)
	{
		m_eResultType = SAX_RESULT_ARRAY;
		CCSAXParser parser;
        
		if (false == parser.init("UTF-8"))
		{
			return NULL;
		}
		parser.setDelegator(this);
        
		unsigned int udataLength = strlen((char*)data);
		parser.parse((char*)data, udataLength);
		return m_pArray;
	}
bool XMLLevelLoader::parseXMLFile(const char *xmlFilename)
{
    CCSAXParser parser;
    
    if (false == parser.init("UTF-8") )
    {
        return false;
    }
    
    parser.setDelegator(this);
    
    xObjectoffset = 0.0f;
    yObjectoffset = 0.0f;

    return parser.parse(xmlFilename);
}
Esempio n. 14
0
void AnimatePacker::loadAnimate( char *path )
{
	//解析xml////////////////////////////////////
	const char *pszPath = CCFileUtils::fullPathFromRelativePath(path);//从相对路径得到绝对全路径

	CCSAXParser parser;
	AnimateSaxDelegator delegator;

	if (false == parser.init("UTF-8"))
	{
		//TODO
		return;
	}
	parser.setDelegator(&delegator);
	parser.parse(pszPath);

	//加载plist////////////////////////////////////
	vector<string> plists=delegator.plists;
	for (int i=0;i<plists.size();i++)
	{
		CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile(plists[i].c_str());
	}

	//缓冲animate////////////////////////////////////
	vector<Animate> animates=delegator.animates;
	CCMutableArray<CCSpriteFrame*> *spriteFramesArray = new CCMutableArray<CCSpriteFrame*>();

	for (int i=0;i<animates.size();i++)
	{
		Animate animate=animates[i];
		vector<string> spriteFrames=animate.spriteFrames;

		for (int j=0;j<spriteFrames.size();j++)
		{
			CCSpriteFrame *spriteFrame=CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(spriteFrames[j].c_str());
			spriteFramesArray->addObject(spriteFrame);
		}

		CCAnimation *animation=CCAnimation::animationWithFrames(spriteFramesArray,animate.delay);
		CCAnimationCache::sharedAnimationCache()->addAnimation(animation,animate.name.c_str());

		spriteFramesArray->removeAllObjects();
	}
	
}
Esempio n. 15
0
bool CCTMXMapInfo::parseXMLString(const char *xmlString)
{
    int len = strlen(xmlString);
    if (xmlString == NULL || len <= 0) 
    {
        return false;
    }

    CCSAXParser parser;

    if (false == parser.init("UTF-8") )
    {
        return false;
    }

    parser.setDelegator(this);

    return parser.parse(xmlString, len);
}