CCMenuItemImage itemWithNormalImage:显示错误的标记

时间:2015-02-27 11:52:47

标签: objective-c cocos2d-iphone

更新的问题

让我感到困惑的东西。调用时,下面的方法显示对象的正确地址,但是我之前单击的按钮中的标记。所以需要两次点击才能获得当前对象的标记...

CCMenuItemImage itemWithNormalImage:@"1_Maj_DA.png"
                                                             selectedImage:@"1_Maj.png"
                                                        disabledImage: nil block:^(id sender){
                                      NSLog(@"Button tapped: %@", sender);
                                  }];

在应用程序的“设置菜单”部分中,我正在调用方法

-(void)loadUIWithRespectToIndex:(int)buttonIndex

在不同的设置视图之间切换,如下所示:

else if(buttonIndex == 5){
    if(isFreeModeSet)
    {
        return;
    }

    [self removeOtherOptionsExceptWithIndex:5];
    isFreeModeSet = YES;


    CCMenuItemImage *unisonBtn = [CCMenuItemImage itemWithNormalImage:@"1_Maj_DA.png"
                                                             selectedImage:@"1_Maj.png"
                                                        disabledImage: nil target:self selector:@selector(intervalButtonTapped:)];


    [unisonBtn setAnchorPoint:ccp(0.5f, 0.5f)];
    [unisonBtn setTag:0];

    CCMenuItemImage *maj2Btn = [CCMenuItemImage itemWithNormalImage:@"2_Maj_DA.png"
                                                        selectedImage:@"2_Maj.png"
                                                        disabledImage:nil
                                                                target:self selector:@selector(intervalButtonTapped:)];
    [maj2Btn setAnchorPoint:ccp(0.5f, 0.5f)];
    [maj2Btn setTag:2];

等...

从这些按钮我构成一个菜单:

CCMenu *freeModeIntervalMenuMajor = [CCMenu menuWithItems:unisonBtn, maj2Btn, maj3Btn, maj4Btn, maj5Btn, maj6Btn, maj7Btn, maj8Btn, nil];
    [freeModeIntervalMenuMajor setPosition:ccp(scrollViewSecondSprite_.contentSize.width*0.5, scrollViewSecondSprite_.contentSize.height*0.5)];
    [freeModeIntervalMenuMajor alignItemsHorizontallyWithPadding: 10];
    [scrollViewSecondSprite_ addChild:freeModeIntervalMenuMajor z:10 tag:9800];

然后是那些按钮调用的方法声明:

-(void)intervalButtonTapped:(CCMenuItemImage*)sender
{
NSLog(@"Button tapped: %@", sender);
 }

每次调用此方法时,来自intervalButtonTapped的NSLog:显示上一次“click”的地址和标记。它总是落后一趟。好像只在调用NSLog方法后才分配发送方。我尝试了一个带有块的CCMenuItemImage版本,但结果相同。

0 个答案:

没有答案
相关问题