按住CCMenuItemImage / CCMenu按钮3秒钟以触发操作

时间:2013-09-27 11:48:06

标签: iphone ios ipad cocos2d-iphone

我想在我的应用程序的某些cocos2d按钮中执行保持操作,以便将它们保持3秒钟,然后显示它将带来的内容。例如:

CCMenuItemImage * menuBtnSettings = [CCMenuItemImage
                                         itemWithNormalSprite:[CCSprite spriteWithSpriteFrameName:@"settingsButton_over"]
                                         selectedSprite:[CCSprite spriteWithSpriteFrameName:@"settingsButton_down"]
                                         disabledSprite:[CCSprite spriteWithSpriteFrameName:@"settingsButton_over"]
                                         target:self
                                         selector:@selector(showSettings)];

    [menu addChild:menuBtnSettings z:3 tag:20];
    [menuItemsArray addObject:menuBtnSettings];

有没有办法在不影响整个应用程序的情况下实现这一目标?因为只有三个按钮会有特殊操作。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以继承CCMenuItemImage并覆盖“selected”方法。

-(void) selected{

  isSelected_ = YES;
  if( selectedImage_ ) {
        [normalImage_ setVisible:NO];
        [selectedImage_ setVisible:YES];
        [selectedImage_ runAction:[CCSequence actions:[CCDelayTime actionWithDuration:3],[CCCallFunc actionWithTarget:self selector:@selector(makeVisibile),]nil]];

    [disabledImage_ setVisible:NO];

  } else { // there is not selected image

    [normalImage_ setVisible:YES];
    [selectedImage_ setVisible:NO];
    [disabledImage_ setVisible:NO];
  }

}

-(void)makeVisible{  
     [ selectedImage_ setVisibile:YES];
}

注意:我没有测试过上面的代码。只是想提出这个想法