1

我正在尝试使 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_ 。如果按下按钮以外的任何内容(包括关闭菜单),我的场景中有逻辑可以取消选择所有内容。现在发生的事情是在按下按钮后,它被禁用。如果我再次尝试按下它,它只会关闭所有东西,就像按钮不存在一样。

我需要的是这些按钮在禁用状态下可以点击(它将运行选中和未选中但不激活)。有人知道怎么做吗?

4

1 回答 1

0

在禁用状态下可点击?那为什么要禁用菜单按钮?只需更改普通图像即可禁用图像框架。

[menuBtn setNormalImage:[CCSprite spriteWithSpriteFrame:@"frameDisableBtn.png"] ];
[menuBtn setSelectedImage:[CCSprite spriteWithSpriteFrame:@"frameDisableBtn.png"] ];
于 2013-04-10T18:32:28.807 回答