Проблема с анимацией CCLabelTTF с использованием свойства opacity - PullRequest
0 голосов
/ 21 марта 2012

У меня есть следующий фрагмент кода:

CCLabelTTF *start = [CCLabelTTF labelWithString:@"What Car was that?" fontName:@"Marker Felt" fontSize:32];
start.position = ccp( size.width * 1.5 / 4, size.height * 3 / 4 );
[start setOpacity:0.0];
[self addChild:start];

[self fadeText:start duration:1.5 curve:0 x:0 y:0 alpha:255.0];

и вот как определяется fadeText:

- (void)fadeText:(CCLabelTTF *)progress duration:(NSTimeInterval)duration
             curve:(int)curve x:(CGFloat)x y:(CGFloat)y alpha:(float)alpha
{
    // Setup the animation
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:duration];
    [UIView setAnimationCurve:curve];
    [UIView setAnimationBeginsFromCurrentState:YES];

    // The transform matrix
    progress.opacity = alpha;
    //[progress setOpacity:alpha];
    // Commit the changes
    [UIView commitAnimations];
}

по какой-то причине эффект происходит без анимации, поэтому текст показывает (следовательно, непрозрачность меняется на 255), но не анимируется!

Ответы [ 2 ]

0 голосов
/ 21 марта 2012

Вместо анимации UIView вы можете использовать функцию CCFadeTo для затухания CCLabelTTF.

id fade = [CCFadeTo actionWithDuration:1 opacity:200];

, чтобы передать эту анимацию затухания как runAction для метки.

0 голосов
/ 21 марта 2012

Альфа-диапазон варьируется от 0 до 1. Если вы укажете 255, он очень быстро достигнет 1 и останется там. Так что просто передайте alpha:1 и все будет в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...