Question

J'ai une application flexible et je veux ajouter un nouveau composant personnalisé avec le script d'action lors de l'exécution. Cela fonctionne très bien. J'ai créé mon composant personnalisé et ajouté le code suivant:

var freeView:FreeView=new FreeView();
freeView.setStyle("showEffect",this.fadeIn);
freeView.setStyle("hideEffect",this.fadeOut);
freeView.visible=false;
this.addChild(freeView);
freeView.visible=true;

Mais mon problème est fondu dans effecto ne fonctionne pas. Je sais que je l'ai déclaré correctement l'effet parce que si je l'utilise dans un autre composant (comme un panneau), il fonctionne très bien. Quelqu'un peut-il me aider avec ce problème? Meilleures salutations!

Était-ce utile?

La solution 2

Enfin je résous le problème d'une manière différente. Au lieu d'ajouter le composant lors de l'exécution, j'ai ajouté le composant à l'application avec la propriété visible est définie sur false et je changer à vrai quand j'ai besoin.

Autres conseils

Assurez-vous que vous appelez les super-fonctions Flex surchargées dans votre sous-classe Freeview.

En particulier updateDisplayList et commitProperties:

override protected function updateDisplayList(w:Number, h:Number)
{
    super.updateDisplayList(w, h);

    // Your code here.
}


override protected function commitProperties()
{
    super.commitProperties();

    // Your code here.
}

Êtes-vous surchargez l'une des classes de conteneurs de haut niveau (par exemple en toile ou HBox) ou UIComponent?

vous pouvez le faire dans l'autre sens en fixant la cible d'effets sur votre nouvel élément

<mx:Fade id="showFlag" alphaFrom="0" alphaTo="1" duration="5000"/>

var flag:Image = new Image;
flag.source = flagSource;

something.addElement(flag);

showFlag.target = flag;
showFlag.play();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top