2012-02-01 78 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的一個子類的動作,而在這種情況下,我認爲你需要在精靈本身運行它。

嘗試更改:

[menuItem runAction:seq];

收件人:

[animationSprite runAction:seq];