我想在我的应用程序的某些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];
有没有办法在不影响整个应用程序的情况下实现这一目标?因为只有三个按钮会有特殊操作。
谢谢!
答案 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];
}
注意:我没有测试过上面的代码。只是想提出这个想法