NSAnimation looping - PullRequest
       12

NSAnimation looping

0 голосов
/ 06 сентября 2011

У меня есть вид, который запускает анимацию, когда пользователь перетаскивает на нее файлы. Анимация показывает, что относительный значок файлов (внутри NSImageView Ivar пользовательского класса NSAnimation) становится больше при исчезновении.

Если я зациклить анимацию внутри стандартного цикла, как:

CustomAnimation *animation = [[CustomAnimation alloc] initWithDuration: 2.0 animationCurve: NSAnimationLinear]

NSimage *icon;

for (NSString *filename in filenames) {
    icon = [[NSWorkspace sharedWorkspace] iconForFile: filename];
    NSImageView *myImageView = [[NSImageView alloc] initWithFrame: theFrame];
    [myImageView setImage: icon];
    [animation setImageView: myImageView];
    [animation startAnimation];
}

Цикл слишком быстрый, и анимация выглядит так, как будто он был запущен почти вместе (очевидно).

Как вы думаете, что является лучшим подходом для многократного зацикливания анимации, контролируя задержку между началом одной анимации и последующей?

Ответы [ 2 ]

0 голосов
/ 07 сентября 2011

Причина, по которой ваша анимация вспыхивает (за исключением, возможно, последней), заключается в том, что на каждой итерации вы «перезаписываете» предыдущую анимацию новой.

Этот пост о объединении основных анимаций вместе должен помочь, если идея состоит в том, чтобы каждая анимация занимала целые 2 секунды. Вы можете добавить событие между анимациями.

- Правка -

@ Ричард, это моя ошибка, я неправильно понял вопрос.

Если посмотреть на документацию по NSAnimation, вы можете использовать startWhenAnimation:reachesProgress: для создания цепочки анимации.

0 голосов
/ 06 сентября 2011

Вы можете использовать NSTimer для этих целей.

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