fade in de composant ajouté avec Actionscript
-
21-08-2019 - |
Question
Salut quand j'ajouter un nouveau composant à l'aide Actionscript je veux qu'il se fanent en douceur, par exemple ce composant
var df : DateField = new DateField();
df.text = DateField.dateToString(new Date(),stringFormat);
df.formatString = stringFormat;
J'ai essayé
var fade : Fade = new Fade();
df.setStyle("showEffect", fade);
mais cela ne fonctionne pas.
des idées? =)
Merci d'avance
Sebastian
La solution
Le showEffect ne se déclenche que lorsque vous modifiez la propriété .visible du composant -. Vous devez déclencher que quelque part à l'expérience de la génialité du fondu
Je jeté cela ensemble réel rapide, donc vous pouvez voir ce que je veux dire (remarque aussi j'ai utilisé une chaîne pour définir le fondu plutôt qu'un objet - il semble toujours plus facile de cette façon ... elle pourra être utile)
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.events.FlexEvent;
import mx.controls.DateField;
private function init():void{
var df:DateField = new DateField();
df.visible = false;
df.setStyle("showEffect","Fade");
this.addChild(df);
df.addEventListener(FlexEvent.CREATION_COMPLETE,triggerFade);
}
private function triggerFade(event:FlexEvent):void{
var df:DateField = event.currentTarget as DateField;
df.visible = true;
}
]]>
</mx:Script>
</mx:Application>
Autres conseils
Il convient de souligner que les bibliothèques de tween d'Adobe et le genre sont très lents. Je suggère GTween (encore en version bêta, mais je ne l'ai pas eu de problèmes), TweenLite / Max (peut avoir des problèmes de licences), ou Tweener (Facile à utiliser, mais beaucoup plus lent que les deux autres), la mise en alpha à 0 et à la décoloration puis pour 1. Il est pas aussi facile, mais ces bibliothèques offrent de bien meilleures performances.