Comprendi l'applicazione e le cornici flessibili
-
19-09-2019 - |
Domanda
Spinto dalla curiosità, sto cercando di capire il ciclo di vita utilizzato dall'applicazione Flex.
Quindi, ho fatto una piccola ricerca su questo argomento; I due concetti chiave utilizzati nel flashplayer sono:
- Frame SWF: è l'unità logica che contiene codice grafico e come codice
- Flash Player Frame: è l'intervallo di tempo utilizzato da Flash Runtime per aggiornare lo schermo e definito dalla proprietà Framerate
In tal caso, potresti spiegarmi la relazione tra questi due concetti? In particolare, sono accoppiati di timoniere o no?
La regola principale è: il flash player flusso in un SWF; Fino a quando non viene letto un frame SWF completo, il lettore flash non può renderlo.
Cercherò di spiegare cosa devo capire. Per motivi di semplicità, supponiamo di avere un'applicazione a due frame: SWF FR 1 e SWF FR 2.
In generale (ad esempio in CS4) un frame è considerato come un'unità logica (delimitata dal tag showframe) in cui è possibile allegare il codice AS3. Questa come versione semplificata di un file SWF, penso:
- L'intestazione // framerate è definito qui
- Simboli, classi ecc ... // Questo è fr1 === showframe ===
- Simboli, classi ecc ... // Questo è fr2 === showframe === end
Quindi, i telai dei giocatori flash possono aver avuto molte volte per cornice SWF?
Quando il download di FR1 (FR1 non è completamente caricato) ci sono eventi Enterframe o no? Il primo frameEvent si svolge quando la FR1 è completamente carica? Durante quale periodo di tempo è reso FR1? Un altro scenario, se hai chiamato il comando STOP in FR1, otterrai EnterFrame alla velocità specifica (il frame corrente è FR1). Nel frattempo FR2 sta scaricando. Quando è finito, vai al fotogramma successivo (FR2). Durante quale periodo di tempo è reso FR2? Flash Player cerca di rendere FR2 al prossimo intervallo di tempo?
Prendi in considerazione questa semplice sequenza:
- FR1 sta scaricando
- FR1 è completamente scaricato
- Metodo delle chiamate fr1 stop (), nel frattempo FR2 sta scaricando
- FR2 è completamente scaricato
- Vai a FR2
- Metodo delle chiamate FR2 Stop ()
- E così via
Potresti sottolineare per me quando si svolgono gli eventi di Flash Player Enterframe?
Grazie per il tuo tempo. Cordiali saluti, FLEX_ADDEDET.
Soluzione
Anche se sembra che tu abbia sicuramente esaminato le cose, alcune delle tue ipotesi sono errate. Flex è il codice flash scritto in un bel framework. Quindi tutto si riduce a frame che sono una miscela di esecuzione del codice e i risultati di quel codice che eseguono, rendering. Quando tutto il codice richiesto è stato eseguito e il processo di rendering è completo, il frame è completo e il lettore flash passa al frame successivo.
Quindi viene chiamato il tuo enterframe.
Ora non è tipico come sviluppatore Flex ascoltare l'evento Enterframe.
Per comprendere le app Flex, devi solo pensare che siano app flash, con il primo frame di un frame di caricamento e il secondo è l'app. Sono le sottoparti e le loro singole tempistiche che compongono tutto il resto dei fotogrammi. Questo concetto confonde sicuramente le persone perché poi credono che l'Enterframe dovrebbe essere chiamato solo due volte, questo non è così.
Il prossimo presupposto sbagliato che molte persone hanno è che solo perché "nessun codice sta eseguendo" che i frame non vengono ancora chiamati. Anche questo non è così. Solo perché qualcosa non sta cambiando non significa che i frame non vengano chiamati e - senza i controlli appropriati - non si stanno verificando grandi quantità di elaborazione.
Hth