Usando ViewControllers uteis - netoleal/ASF2 GitHub Wiki
Alguns ViewControllers úteis
View Controllers
O ASF possui algumas classes úteis que você pode usar em seus projetos. Algumas delas:
asf.core.controllers.InOutController
Essa classe é útil para usar MovieClips com transições de "entrada" e "saída" baseadas em Timeline.
Uso:
var headerController:InOutViewController = new InOutViewController( new HeaderMC( ) );
this.addChild( headerController.view );
header.animateIn( true ); //ou animateOut para "sair"
O InOutViewController funciona da seguinte forma:
No exemplo acima, HeaderMC
é um MovieClip exportado em um SWC. Para integrar ele corretamente com o InOutViewController, você deve criar a animação na timeline dele da forma como quiser e, para integrar, você define "labels" nos frames da timeline para marcar os estados. O InOutViewController procura por labels específicos para conseguir identificar sua animação. São eles:
- in Início da animação de entrada
- inEnd Fim da animação de entrada
- out Início da animação de saída
- outEnd Fim da animação de saída
- inOut Entrada e saída no modo avança/retrocede
Quando o método animateIn
é chamado, o InOutViewController controla a timeline do MovieClip target de forma com que ele execute o trecho da timeline entre os labels "in" e "inEnd". O mesmo acontece com o "animateOut" e os frames "out" e "outEnd"
Você também pode fazer animações mais simples usando a técnica de avança/retrocede. Para isso basta fazer a animação de entrada e marcá-la com o label "inOut". Dessa forma o método animateIn
irá avançar a timeline até o fim e o animateOut
irá executá-la ao contrário até o início.
Os métodos animateIn
e animateOut
retornam um objeto Sequence
para você fazer sequenciamento de animações.
Por exemplo:
meuController.animateIn( ).queue( fazAlgoQuandoTerminarAnimacao, "com", "parametros" );
asf.core.viewcontrollers.ButtonViewController
O ButtonViewController é uma classe que extende a InOutViewController. Portanto tem as mesma funcionalidades com algumas adições. O comportamento de animateIn e animateOut é automaticamente relacionado com os eventos de Mouse. Ou seja, o Mouse over e Mouse out já ficam funcionando automaticamente.
Ele também vai usar labels específicos na timeline do MovieClip. Você pode usar os mesmos que o InOutViewController ou pode ser mais específico.
Os frames suportados são:
- in Início da animação de entrada
- inEnd Fim da animação de entrada
- out Início da animação de saída
- outEnd Fim da animação de saída
- over Início da animação de Mouse Over
- overEnd Fim da animação de Mouse Over
- overOutEnd Fim da animação de Mouse Out (o início da animação de out é sempre o frame atual nesse caso)
- inOut Entrada e saída no modo avança/retrocede (também funcionando como MouseOver/MouseOut)
Uso
var button:ButtonViewController = new ButtonViewController( new ButtonAsset( ), {
over: section.application.sounds.getSoundItem( "dclick" ),
click: section.application.sounds.getSoundItem( "click" )
} );
O construtor do ButtonViewController suporta um segundo parâmetro opcional. Esse parâmetro serve para você conectar objetos asf.core.media.SoundItem
ao evento "over", "out" e "click".
asf.core.viewcontrollers.ShowHide
Esse é um view controller simples que contém funcionalidades de FadeIn/FadeOut nativas. É bastante útil para aqueles controles que aparecem e somem da tela quando você está sem saco de implementar.
Exemplo:
var mensagem:ShowHide = new ShowHide( this.$mensagem );
mensagem.show( );
Os métodos show
e hide
também retornam uma instância de Sequence
e aceitam delay.
Exemplo:
var mensagem:ShowHide = new ShowHide( this.$mensagem );
mensagem.show( 1500 ).queue( fazAlgoDepois );
Vale a pena dar uma olhada nos controllers úteis do ASF. Eles estão no package asf.core.viewcontrollers
.