Domanda

Ho un'applicazione Flex e voglio aggiungere un nuovo componente personalizzato con action script in fase di esecuzione. Questo funziona bene. Ho creato la mia componente personalizzato e ha aggiunto il seguente codice:

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

Ma il mio problema è la dissolvenza in Effecto non funziona. So che ho dichiarato correttamente l'effetto, perché se lo uso in un altro componente (come un pannello) funziona benissimo. Qualcuno può aiutarmi con questo problema? Cordiali saluti!

È stato utile?

Soluzione 2

Finalmente ho risolto il problema in modo diverso. Invece di aggiungere la componente in fase di esecuzione ho aggiunto il componente per l'applicazione con la proprietà visibile impostata su false e cambiare a vero quando ho bisogno.

Altri suggerimenti

Assicurarsi che si chiama qualsiasi super-funzioni override Flex nella sottoclasse Freeview.

In particolare updateDisplayList e 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.
}

Stai override di una delle classi contenitore di alto livello (per esempio tela o hbox) o UIComponent?

si può fare il contrario impostando bersaglio effetti al nuovo elemento

<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();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top