Kann ich mehrere aufeinanderfolgende Updates in Flex auszuführen suspend zeichnen?

StackOverflow https://stackoverflow.com/questions/258182

  •  06-07-2019
  •  | 
  •  

Frage

Ich habe für die Auswahl einzelner Tage, Wochen, Monate und so weiter einen einfachen Kalender-Steuerelement ermöglichen geschrieben. Die Einfachheit kommt von der Tatsache, dass ich jede Zeichnung selbst nicht wirklich tun, sondern entscheiden sie ein paar Kisten und Etiketten zu erstellen, wie Datum Zellen für den Kalender zu handeln.

Wenn ein Datum oder ein Datumsbereich ausgewählt ist, muss ich diesen Bereich markieren. Es ist leicht durch Iterieren durch die Zellen gemacht und ihren Stil wechseln. [edit:] Dies scheint jedoch eine Verzögerung zu verursachen, in dem die Zellen als erstes gezogen werden, wenn der Stil Name war leer, und dann mit dem richtigen Stil neu gezogen, trotz der Tatsache, dass ich nie explizit festgelegt, den Stil zu null. - ich abwechselnd zwischen „CalendarCell“ und „CalendarCellSelected“

Wenn diese Windows Forms, würde ich auf den übergeordneten Container rufen SuspendLayout um sicherzustellen, dass die Kontrollen neu gestrichen werden erst nachdem ich die Updates fertig sind. Was ich suche, zu wissen, ob eine ähnliche Lösung für Flex besteht. Ich mag den gesamten Kalender „von Hand“ zu vermeiden, zeichnen, so zu sprechen, wenn das überhaupt möglich ist.

bearbeiten. verändert die Problembeschreibung genauer zu reflektieren, was ich sehe

War es hilfreich?

Lösung

Ist Ihr Kalender-Steuerelement ein UIComponent? Nutzt es die Standard-Ungültigkeits Methoden wie commitProperties (), update (), etc?

Was möchten Sie vielleicht zu tun ist, ein eigenes Array der Zellen zu halten, die ihre Stile geändert haben, aber dann tun, um die tatsächlichen Stil Schalt in Ihrem commitProperties () außer Kraft setzen. Ich bin nur nicht sicher, ob setStyle () feuert eine validateNow (), weil das Flackern ein wenig überraschend ist.

Andere Tipps

Sind Sie calllater () überhaupt mit?

Wenn Sie calllater () verwenden, es Ihre Visuals impove kann, da es Änderungen Chargen, bis es einen Rahmen ziehen muss oder Sie einen Rahmen mit validateNow ziehen Kraft () oder ähnliches. Es könnte in Ihrem Fall genug sein.

Das ist vielleicht nicht genau das, was Sie suchen, aber David Coletta bei Adobe hat geschrieben ein Video erklärt ein EventCoalescer , dass sie in Buzzword verwenden für Ereignisse, die aktualisiert werden bestimmte Bereiche der App UI, bis der Benutzer nicht mehr bewegt die Einfügemarke in dem Text, zum Beispiel aufzuschieben.

Dieser Blog-Eintrag von Hans Van de Velde auch eine ähnliche Lösung hat, und tatsächlicher Code für sie als gut.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top