Question

Poussée par la curiosité, j'essaie de comprendre le cycle de vie utilisé par Flex Application.

J'ai donc fait un peu de recherche sur cet argument; Les deux concepts clés utilisés dans le FlashPlayer sont:

  • Frame SWF: c'est l'unité logique qui contient du code graphique et comme code
  • Flash Player Cadre: c'est l'intervalle de temps utilisé par Flash Runtime pour mettre à jour l'écran et défini par la propriété Framerate

Si oui, pourriez-vous m'expliquer la relation avec ces deux concepts? En particulier, sont-ils jumelés ou non?

La règle principale est la suivante: le lecteur flash diffuse dans un SWF; Jusqu'à la lecture d'un cadre SWF complet, le lecteur flash ne peut pas le rendre.

J'essaierai d'expliquer ce que j'ai besoin de comprendre. Par souci de simplicité, supposons que vous ayez une application à deux cadre: SWF FR 1 et SWF FR 2.

En général (par exemple dans CS4), un cadre est considéré comme une unité logique (délimité par la balise ShowFrame) où vous pouvez attacher du code AS3. Ceci comme une version simplifiée d'un fichier SWF, je pense:

  • En-tête // Framerate est défini ici
  • Symboles, classes etc… // c'est FR1 === ShowFrame ===
  • Symboles, classes etc… // c'est FR2 === showframe === fin

Si vous avez deux cadre, FR1 et FR2, Flash commence à exécuter FR1 et passe au suivant (FR2). Si vous n'arrêtez pas l'excuse, le lecteur exécute et rend le code contenu dans FR1 et FR2 via une boucle infinie. Au contraire, lorsque vous arrêtez l'exécution, par exemple dans FR2, les boucles Flash Lovers exécutent le code contenu dans FR2.

Alors, les cadres Flash Player peuvent-ils avoir eu lieu plusieurs fois par cadre SWF?

Lorsque FR1 est le téléchargement (FR1 n'est pas entièrement chargé), y a-t-il des événements enterframe ou non? Le premier nom de catégorie a-t-il lieu lorsque le FR1 est entièrement chargé? Pendant quelle période FR1 est-elle rendue? Un autre scénario, si vous avez appelé la commande stop dans FR1, vous obtiendrez EnterFrame au taux que vous spécifiez (le cadre actuel est FR1). Pendant ce temps, le FR2 télécharge. Une fois terminé, vous allez dans le cadre suivant (FR2). Pendant quelle période le FR2 est-il rendu? Flash Player essaie-t-il de rendre FR2 à son prochain intervalle de temps?

Prenez compte de cette séquence simple:

  1. FR1 télécharge
  2. FR1 est entièrement téléchargé
  3. FR1 Calles Stop () Méthode, en attendant FR2 téléchargement
  4. FR2 est entièrement téléchargé
  5. Aller au FR2
  6. FR2 Calles Stop () Méthode
  7. Etc

Pourriez-vous me souligner lorsque les événements Flash Player Enterframe ont lieu?

Merci pour votre temps. Meilleures salutations, flex_adéd.

Était-ce utile?

La solution

Bien qu'il semble que vous ayez définitivement examiné les choses, certaines de vos hypothèses sont incorrectes. Flex est le code flash écrit en un joli cadre. Ainsi, tout se résume à des cadres qui sont un mélange d'exécution de code et des résultats de cette exécution de code, du rendu. Lorsque tout le code requis a été exécuté et que le processus de rendu est terminé, le cadre est terminé et le lecteur flash passe à la trame suivante.

Alors votre enterframe est appelé.

Maintenant, il n'est pas typique en tant que développeur flexion d'écouter l'événement EnterFrame.

Pour comprendre les applications Flex, il vous suffit de penser que ce sont des applications flash, la première trame étant une trame de chargement, et la seconde étant l'application. Ce sont les sous-parties et leurs délais individuels qui composent tous les autres cadres. Ce concept confond certainement les gens parce qu'ils croient alors que l'Enterframe ne devrait être appelé que deux fois, ce n'est pas le cas.

La prochaine mauvaise hypothèse que beaucoup de gens ont est que simplement parce que "aucun code ne s'exécute" que les cadres ne sont pas encore appelés. Ce n'est pas non plus le cas. Ce n'est pas parce que quelque chose ne signifie pas que les cadres ne sont pas appelés et - sans les contrôles appropriés - de grandes quantités de traitement ne se produisent pas.

Hth

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top