2010-12-28 15 views
1

Ich habe ein einfaches Objekt (AnimateTopDown), das kontinuierlich nach oben und unten animiert, und ich habe mehrere AnimateTopDown-Objekte, die animieren, aber es gibt keine Synchronisierung zwischen allen Objektanimationen. Im Allgemeinen, wie man Synchronisierung zwischen Gegenständen behält? Gibt es eine Möglichkeit, zwischen separaten Animationsblöcken zu synchronisieren?Synchronisierung zwischen animierten Objekten beibehalten?

p.s. Ich verwende die UIViewAnimation-Schnittstelle zum Animieren von Objekten.

Antwort

0

// mSyncTime kann

-(NSTimeInterval) getStartDelay 
{ 
    NSTimeInterval delay; 

    NSTimeInterval oldTime = mSyncTime; 
    if(oldTime == 0) 
    { 
     mSyncTime = [NSDate timeIntervalSinceReferenceDate]; 
     oldTime = mSyncTime; 
    } 

    NSTimeInterval timeNow = [NSDate timeIntervalSinceReferenceDate]; 

    delay = timeNow - oldTime; 

    SLint delayInMiliSec = delay * 1000; 
    SLint animDuration = (DEFAULT_ANIM_SPPED*2) * 1000; 

    SLint timeElapsed = delayInMiliSec%animDuration; 
    delay = animDuration - timeElapsed; 

    delay = delay/1000.0; 

    if(oldTime == 0) 
     delay = 0; 

    return delay; 
} 

Und vor dem Start Animation shared/globale Variable I die Verzögerung auf die setAnimationDelay API gesetzt haben ...

[UIView setAnimationDelay:[self getStartDelay]]; 

Es funktionierte für mich ... Der Hack ist, dass wir eine Standardzeit einhalten müssen und bevor wir irgendeine Animation starten, müssen wir unsere Animation mit dieser Referenzzeit synchronisieren.

0

Es ist ein bisschen schwer zu bekommen, was Sie hier wollen. Was für einen Effekt hast du und was für einen Effekt willst du erreichen?

Im Allgemeinen können Sie jedoch mit einem einzelnen UIView-Animationsblock (oder dem zum Animieren verwendeten Mechanismus) alle Objekte so verschieben, dass sie sich gleichzeitig bewegen. Wenn man ihnen separate Animationsblöcke gibt, werden sie nacheinander ausgeführt, wenn sie für die CPU-Zeit in die Warteschlange gestellt werden.

Verwandte Themen