2012-02-01 2 views
1

Я пытаюсь удалить CCMenuItem с пользовательской анимации и он выходит из строя ...удалить ccmenuitem с анимацией Cocos2D

- (void)removeCCMenuItem:(id)sender { 

    CCMenuItemSprite *menuItem = (CCMenuItemSprite *)sender; 

    CCSprite *animationSprite = [CCSprite spriteWithSpriteFrameName:@"AnimatedImage_01.png"]; 

    [fixedSprite setScaleX: menuItem.contentSize.width/animationSprite.contentSize.width]; 
    [fixedSprite setScaleY: menuItem.contentSize.height/animationSprite.contentSize.height]; 

    animationSprite.position = ccp(menuItem.contentSize.width/2,menuItem.contentSize.height/2); 
    [menuItem addChild:animationSprite]; 

    NSMutableArray *animFrames = [NSMutableArray array]; 
    for(int i = 1; i <= 5; ++i) { 
     [animFrames addObject: [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName: [NSString stringWithFormat:@"AnimatedImage_%02d.png", i]]]; 
    } 

    CCAnimation *anim = [CCAnimation animationWithFrames:animFrames delay:0.05f]; 
    CCActionInterval *animAction = [CCAnimate actionWithAnimation:anim restoreOriginalFrame:NO]; 

    id seq = [CCSequence actions: animAction, [CCCallFunc actionWithTarget:animationSprite selector:@selector(removeFromParentAndCleanup:)], [CCCallFunc actionWithTarget:menuItem selector:@selector(removeFromParentAndCleanup:)], nil]; 
    [menuItem runAction:seq]; 
} 

Любая идея, почему он выходит из строя?

Журнал говорит:

reason: '-[CCMenuItemSprite isFrameDisplayed:]: unrecognized selector sent to instance 

ответ

2

Вы бежите действие на подкласс CCMenuItem, в то время как в этом случае, я думаю, что вам нужно, чтобы запустить его на самом спрайта.

Try изменения:

[MENUITEM runAction: след];

Кому:

[animationSprite runAction: SEQ];

Смежные вопросы