Pergunta

Eu tenho um aplicativo flex e eu quero adicionar um novo componente personalizado com script de ação em tempo de execução. Isso funciona bem. Eu criei meu componente personalizado e adicionado o seguinte código:

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

Mas o meu problema é o fade in effecto não está funcionando. Eu sei que já declarou que o efeito corretamente porque se eu usá-lo em outro componente (como um painel) ele funciona muito bem. Alguém pode me ajudar com essa questão? Com os melhores cumprimentos!

Foi útil?

Solução 2

Finalmente eu resolver o problema de uma maneira diferente. Em vez de adicionar o componente em tempo de execução Eu adicionei o componente para a aplicação com visível conjunto de propriedades como false e eu mudá-lo como verdadeiro quando eu preciso.

Outras dicas

Certifique-se de que você chamar qualquer Flex super-funções substituído em sua subclasse FreeView.

Especialmente 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.
}

Você está substituindo uma das classes de contêineres de alto nível (por exemplo lona ou HBox) ou UIComponent?

Você pode fazê-lo o contrário, definindo-alvo efeitos para o seu novo 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();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top