Frage

Angetrieben von meiner Neugier versuche ich den Lebenszyklus von Flex Application zu verstehen.

Deshalb habe ich ein wenig über dieses Argument recherchiert;Die beiden im FlashPlayer verwendeten Schlüsselkonzepte sind:

  • SWF-Frame:Es ist die logische Einheit, die grafischen Code und als Code enthält
  • Flash Player-Frame:Dabei handelt es sich um das Zeitintervall, das von der Flash-Laufzeit zum Aktualisieren des Bildschirms verwendet und durch die Eigenschaft „frameRate“ definiert wird

Wenn ja, könnten Sie mir die Beziehung zwischen diesen beiden Konzepten erklären?Sind sie insbesondere gepaart oder nicht?

Die Hauptregel lautet:der Flash Player streamt in einer SWF-Datei;Bis ein vollständiger SWF-Frame gelesen ist, kann der Flash Player ihn nicht rendern.

Ich werde versuchen zu erklären, was ich verstehen muss.Nehmen wir der Einfachheit halber an, Sie hätten eine Anwendung mit zwei Frames:SWF FR 1 und SWF FR 2.

Im Allgemeinen (z. B. in CS4) wird ein Frame als logische Einheit (getrennt durch das ShowFrame-Tag) betrachtet, an die Sie AS3-Code anhängen können.Dies ist meiner Meinung nach eine vereinfachte Version einer SWF-Datei:

  • Header // FrameRate wird hier definiert
  • Symbole, Klassen usw.… // Dies ist fr1 === showframe ===
  • Symbole, Klassen usw.… // Dies ist fr2 === showframe === Ende

Wenn Sie zwei Frames haben, FR1 und FR2, beginnt Flash mit der Ausführung von FR1 und geht zum nächsten (FR2) über.Wenn Sie die Ausführung nicht stoppen, führt der Player den in FR1 und FR2 enthaltenen Code in einer Endlosschleife aus und rendert ihn.Im Gegenteil, wenn Sie die Ausführung stoppen, beispielsweise in FR2, führt der Flash Player den in FR2 enthaltenen Code in einer Schleife aus.

Können Flash Player-Frames also mehrmals pro SWF-Frame stattfinden?

Gibt es beim Herunterladen von FR1 (FR1 ist nicht vollständig geladen) enterFrame-Ereignisse oder nicht?Findet das erste FrameEvent statt, wenn der FR1 vollständig geladen ist?In welchem ​​Zeitraum wird FR1 gerendert?Ein anderes Szenario: Wenn Sie den Stoppbefehl in FR1 aufgerufen haben, erhalten Sie enterFrame mit der von Ihnen angegebenen Rate (der aktuelle Frame ist FR1).Währenddessen wird FR2 heruntergeladen.Wenn es fertig ist, gehen Sie zum nächsten Frame (FR2).In welchem ​​Zeitraum wird FR2 gerendert?Versucht Flash Player, FR2 im nächsten Zeitintervall zu rendern?

Berücksichtigen Sie diese einfache Reihenfolge:

  1. FR1 wird heruntergeladen
  2. FR1 ist vollständig heruntergeladen
  3. FR1 ruft die Methode stop() auf, während FR2 den Download durchführt
  4. FR2 ist vollständig heruntergeladen
  5. Gehen Sie zu FR2
  6. FR2 ruft die Methode stop() auf
  7. Und so weiter

Könnten Sie für mich unterstreichen, wann Flash Player enterFrame-Ereignisse stattfinden?

Vielen Dank für Ihre Zeit.Beste Grüße, Flex_Addicted.

War es hilfreich?

Lösung

Obwohl es so aussieht, als hätten Sie sich definitiv mit den Dingen befasst, sind einige Ihrer Annahmen falsch.Flex ist Flash-Code, der in einem hübschen Framework geschrieben ist.Alles läuft also auf Frames hinaus, die eine Mischung aus der Codeausführung und den Ergebnissen der Codeausführung und dem Rendern sind.Wenn der gesamte erforderliche Code ausgeführt wurde und der Rendervorgang abgeschlossen ist, ist der Frame abgeschlossen und der Flash Player geht zum nächsten Frame über.

Dann wird Ihr enterFrame aufgerufen.

Nun ist es für einen Flex-Entwickler nicht typisch, auf das enterFrame-Ereignis zu warten.

Um Flex Apps zu verstehen, müssen Sie sich nur vorstellen, dass es sich um Flash-Apps handelt, wobei der erste Frame ein Ladeframe und der zweite die App ist.Es sind die Unterteile und ihre einzelnen Zeitleisten, die den Rest der Frames bilden.Dieses Konzept verwirrt die Leute definitiv, weil sie dann glauben, dass der enterFrame nur zweimal aufgerufen werden sollte, was nicht der Fall ist.

Die nächste falsche Annahme, die viele Leute haben, ist, dass die Frames nicht immer noch aufgerufen werden, nur weil „kein Code ausgeführt wird“.Dies ist auch nicht der Fall.Nur weil sich etwas nicht ändert, heißt das nicht, dass keine Frames aufgerufen werden und – ohne die entsprechenden Prüfungen – keine großen Verarbeitungsmengen stattfinden.

HTH

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