我正在尝试使 CCMenuItem(例如 CCMenuItemSprite)在禁用状态下可点击。
我将 CCMenuItemSprite 子类化并覆盖了这些函数:
-(void) selected
{
CCLOG(@"selected");
[super selected];
[self setScale:0.775];
[normalImage_ setVisible:NO];
[selectedImage_ setVisible:YES];
[disabledImage_ setVisible:NO];
}
-(void) unselected
{
CCLOG(@"unselected");
[super unselected];
[self setScale:1];
[normalImage_ setVisible:YES];
[selectedImage_ setVisible:NO];
[disabledImage_ setVisible:NO];
}
-(void) activate
{
CCLOG(@"activate");
if( block_ )
block_(self);
}
基本上我从这三个函数中取出了标志检查 isEnabled_ 。如果按下按钮以外的任何内容(包括关闭菜单),我的场景中有逻辑可以取消选择所有内容。现在发生的事情是在按下按钮后,它被禁用。如果我再次尝试按下它,它只会关闭所有东西,就像按钮不存在一样。
我需要的是这些按钮在禁用状态下可以点击(它将运行选中和未选中但不激活)。有人知道怎么做吗?