Je suis une recrue Flex chargée d'améliorer une application existante. Une de ces améliorations est d'obtenir le champ qui montre actuellement l'heure de se fondre en douceur entre l'affichage de l'heure et la date.En attente de la fin des effets Flex
Je sais que la bonne façon d'y parvenir est d'incorporer le fichier de police dans l'application afin que je puisse fondre l'étiquette directement. J'essaie d'éviter cela si je le peux, car je préférerais que mes changements soient aussi discrets que possible. Je suis arrivé avec ce que je pensais être une solution de contournement raisonnable: créer un «écran de confidentialité» qui se trouve être la taille exacte, la forme et la couleur de l'arrière-plan de l'horloge; initialise son alpha à 0; puis, lorsque vous modifiez l'heure et la date, faites un fondu dans l'écran de confidentialité, effectuez le changement et retirez l'écran à nouveau.
Le code ressemble à ceci:
var targets:Array = new Array();
targets.push(this.privacyScreen);
this.effectFadeIn.play(targets);
this.mylabel.text = "I am a date and/or time";
this.effectFadeOut.play(targets);
... avec les éléments clés qui ressemble à ceci:
<mx:Label text="" id="mylabel" width="100%" height="100%" x="0" y="0" color="0xff0000"/>
<mx:Canvas id="privacyScreen" width="100%" height="100%" x="0" y="0" alpha="1" backgroundColor="{myConfiguration.backgroundColor}"/>
<mx:Fade id="effectFadeIn" alphaFrom="0.0" alphaTo="1.0" duration="250"/>
<mx:Fade id="effectFadeOut" alphaFrom="1.0" alphaTo="0.0" duration="250"/>
Comme je suis sûr que les concepteurs Flex expérimentés savent déjà, ce code est fabriqué à partir de délicieux frais pressés FAIL. L'hypothèse de base que l'exécution attendra la fin de l'effet de fondu est fausse, et l'effet de fondu est apparemment ignoré alors que le fondu d'entrée est toujours en cours.
Je suppose que j'ai deux questions connexes:
- Est-il possible d'obtenir l'exécution de faire une pause en attendant un effet de courir à la fin?
- Cette approche est-elle même viable, ou est-ce que cela peut tout simplement empoisonner le tout de haut en bas?
Merci d'avance pour tout aperçu que tout le monde peut offrir.
(Et je l'avoue à l'avance que plus j'essaie d'apprendre cela en faisant, plus je me rends compte que je dois me servir d'une partie de la ligne trainingresources là-bas.)
Ah-ha! Le paramètre "effectEnd" était précisément le mécanisme dont j'avais besoin pour le retirer, et cet exemple de code démontre très bien le concept. Vous avez mes remerciements. – BlairHippo
Votre message m'a tout simplement épargné un vrai chagrin. Merci! – noogrub