【问题标题】:Make CCMenutItemSprite disabled state clickable使 CCMenutItemSprite 禁用状态可点击
【发布时间】:2013-04-10 18:27:04
【问题描述】:

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

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

【问题讨论】:

    标签: objective-c cocos2d-iphone ccmenuitem


    【解决方案1】:

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

    [menuBtn setNormalImage:[CCSprite spriteWithSpriteFrame:@"frameDisableBtn.png"] ];
    [menuBtn setSelectedImage:[CCSprite spriteWithSpriteFrame:@"frameDisableBtn.png"] ];
    

    【讨论】:

    • 是否有另一种方法可以在某处删除对禁用标志的检查?禁用标志实际上是做什么的?我想我可以做到这一点,如果已经为此预先构建了功能,那么创建另一个标志会感觉很糟糕
    猜你喜欢
    • 2019-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 2013-10-12
    相关资源
    最近更新 更多