用法似乎是一样的?
其实是一个东西,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);
}
```
原来如此…
多谢解答~~