【已解决】CCMenuItemSprite和CCMenuItemImage有什么不同?

用法似乎是一样的?:12:

其实是一个东西,CCMenuItemImage里边是创建出了sprite,然后调用的CCMenuItemSprite,你可以跟进源代码看看。

区别在于创建CCMenuItemSprite传参是CCSprite,而创建CCMenuItemImage传参是资源文件名。
从源码也可以看出,后者内部调用了前者。

bool MenuItemImage::initWithNormalImage(const std::string& normalImage, const std::string& selectedImage, const std::string& disabledImage, const ccMenuCallback& callback)
{
    Node *normalSprite = nullptr;
    Node *selectedSprite = nullptr;
    Node *disabledSprite = nullptr;

    if (normalImage.size() >0)
    {
        normalSprite = Sprite::create(normalImage);
    }

    if (selectedImage.size() >0)
    {
        selectedSprite = Sprite::create(selectedImage);
    }

    if(disabledImage.size() >0)
    {
        disabledSprite = Sprite::create(disabledImage);
    }
    return initWithNormalSprite(normalSprite, selectedSprite, disabledSprite, callback);
}
```

原来如此…:9:
多谢解答~~