CCBProxy类存在的bug

CCBProxy类在解析ccbi文件是会出错,应为它在解析时少了对CCNode的解析。修改源码如下:

const char* CCBProxy::getNodeTypeName(CCNode* pNode)
{
    if (NULL == pNode) {
        return NULL;
    }
    
    if (NULL != dynamic_cast(pNode)) {
        return "CCLabelTTF";
    }


    if (NULL != dynamic_cast(pNode)) {
        return "CCLabelBMFont";
    }


    if (NULL != dynamic_cast(pNode)) {
        return "CCSprite";
    }
    
    if (NULL != dynamic_cast(pNode)) {
        return "CCControlButton";
    }
    
    if (NULL != dynamic_cast(pNode)) {
        return "CCLayerGradient";
    }
    
    if (NULL != dynamic_cast(pNode)) {
        return "CCLayerColor";
    }
    
    if (NULL != dynamic_cast(pNode)) {
        return "CCLayerGradient";
    }
    
    if (NULL != dynamic_cast(pNode)) {
        return "CCMenu";
    }
    
    if (NULL != dynamic_cast(pNode)) {
        return "CCMenuItemAtlasFont";
    }
    
    if (NULL != dynamic_cast(pNode)) {
        return "CCMenuItemFont";
    }
    
    if (NULL != dynamic_cast(pNode)) {
        return "CCMenuItemLabel";
    }
    
    if (NULL != dynamic_cast(pNode)) {
        return "CCMenuItemImage";
    }
    
    if (NULL != dynamic_cast(pNode)) {
        return "CCMenuItemToggle";
    }
    
    if (NULL != dynamic_cast(pNode)) {
        return "CCMenuItemSprite";
    }


    if (NULL != dynamic_cast(pNode)) {
        return "CCMenuItem";
    }


    if (NULL != dynamic_cast(pNode)) {
        return "CCLayer";
    }


    if (NULL != dynamic_cast(pNode)) {
        return "CCString";
    }
    
    if (NULL != dynamic_cast(pNode)) {
        return "CCParticleSystemQuad";
    }

 //修改
if (NULL != dynamic_cast(pNode)) {
return "CCNode";
}

    return "No Support";
}

你可能感兴趣的:(CCBProxy)