Questa potrebbe essere una piccola domanda per principianti, ma non posso per la vita di me capirlo.Forzare Flex per aggiornare lo schermo?
Sto utilizzando flex per sviluppare una GUI per un progetto di grandi dimensioni, in particolare una barra di stato nella parte inferiore. All'interno della mia classe StatusBar c'è un ProgressBar, che le altre classi che fanno il lavoro possono dire di aggiornare (completare il completamento della barra e l'etichetta) mentre progrediscono. Il problema che sto incontrando è che flex non aggiornerà cosa è mostrato sullo schermo fino a che non sia troppo tardi, per esempio
ProgressBar inizializzato, 0% fatto
una certa classe imposta la ProgressBar essere fatto il 12%
qualche classe fa un certo lavoro
una certa classe imposta la ProgressBar essere 56% fatto
che cosa sta accadendo è il 12% fatto non è mai la visualizzazione, appende appena a 0% durante il lavoro, quindi salta fino al 56% fatto. Ho cercato di capire il ciclo di vita di un componente flessibile (invalidazione e convalida), e penso di capirlo e di applicarlo correttamente, ma non funziona affatto. Devo dire a flex di ridisegnare la mia StatusBar (o almeno la ProgressBar all'interno) dopo lo una classe imposta il 12%, ma prima dello una classe inizia a fare il suo lavoro. Come faccio a fare questo?
Questo problema dovrebbe essere considerato come * consentendo * Flex di aggiornare lo schermo. Come indicato di seguito, Flash è un modello di esecuzione a thread singolo per il codice. Pertanto, è necessario ridurre il lavoro consentendo al giocatore di aggiornare lo schermo tra i blocchi. callLater() o l'utilizzo di timer per controllare i blocchi in modo autonomo sono meccanismi di base disponibili. Tieni presente che se fai * non * fai questo, il browser probabilmente farà uscire il lettore Flash dopo 45 secondi (impostazione predefinita FF) – verveguy