Srikanth, какую версию cocos2d вы используете?
Ответ на ваш вопрос - нет. Все действия рассматриваются одинаково.
Код, ответственный за удаление действия, следующий:
// -[CCActionManager removeActionByTag:target:]
-(void) removeActionByTag:(int) aTag target:(id)target
{
NSAssert( aTag != kActionTagInvalid, @"Invalid tag");
NSAssert( target != nil, @"Target should be ! nil");
tHashElement elementTmp;
elementTmp.target = target;
tHashElement *element = ccHashSetFind(targets, CC_HASH_INT(target), &elementTmp);
if( element ) {
NSUInteger limit = element->actions->num;
for( NSUInteger i = 0; i < limit; i++) {
CCAction *a = element->actions->arr[i];
if( a.tag == aTag && [a originalTarget]==target)
return [self removeActionAtIndex:i hashElement:element];
}
// CCLOG(@"cocos2d: removeActionByTag: Action not found!");
} else {
// CCLOG(@"cocos2d: removeActionByTag: Target not found!");
}
}
Я бы порекомендовал вам включить отладку Cocos2d и снять комментарий с этих двух строк CCLog Это должно сказать вам, если там есть проблема.
Если это ничего вам не говорит, может быть интересно взглянуть на класс CCSequence. Возможно, если последовательность удаляется, она не удаляет действия В самой последовательности?
Все действия рассматриваются как равные, но, возможно, это действие Sequence должно быть исключением из этого.