Iniciando com ASF - netoleal/ASF2 GitHub Wiki
Iniciando com o ASF
ASF2 - versão beta
Esta versão do ASF2 ainda está em beta. Ou seja, o desenvolvimento ainda não acabou e não está totalmente estável. Porém, está "usável".
Recursos suportados atualmente
- Configuração da aplicação por XML
- Parâmetros dinâmicos e condicionais
- Dependências de aplicação e seção
- Layers na aplicação e nas seções
- Possibilidade de carregar/abrir mais de uma seção ao mesmo tempo
- Possibilidade de existir seções dentro de seções
- Histórico recursivo e independente entre aplicação e seções
- Estilos CSS na aplicação e nas seções
- Manipulação de sons na aplicação e nas seções
- Engine de navegação independente na aplicação e nas seções
- Possibilidade de trocar a engine de carregamento de acordo com sua preferência (atualmente aceita LoaderMax ou BulkLoader. É possível criar outros plugins facilmente de acordo com a engine de sua preferência)
- Framework completamente desconectado de qualquer engine de Tween (você pode usar qualquer uma que preferir)
- Dicionário com textos localizáveis dinâmico
- Métricas e engine de tracking / Analytics
Alguns exemplos para iniciar
Inicializando a aplicação
app = new ASF( new Sprite( ), this.root.loaderInfo, new LoaderMaxFactoryPlugin( ) );
app.params.defaults.config = "../xml/application.xml";
app.addEventListener( DependenciesProgressEvent.LOAD_COMPLETE, handleAppLoadComplete );
app.loadModel( new URLRequest( app.params.config ) );
addChild( app.view );
Navegando entre seções
app.navigation.openSection( "Section 1" );
Estruturando uma seção e acessando dependências da seção
public class HomeSectionView extends UIView implements ISectionView
{
private var wallpaper:Bitmap;
private var transition:Sequence;
public function HomeSectionView( )
{
super( );
transition = new Sequence( );
}
public function open( p_delay:uint = 0 ):Sequence
{
wallpaper = section.dependencies.getImage( "wallpaper" );
section.layers.wallpaper.addChild( wallpaper );
transition.notifyStart( );
alpha = 0;
tween( 333 ).start( { target: this, alpha: 1 } ).queue( transition.notifyComplete );
return transition;
}
public function close( p_delay:uint = 0 ):Sequence
{
transition.notifyStart( );
tween( 666 ).start( { target: this, alpha: 0 } ).queue( transition.notifyComplete );
return transition;
}
public override function dispose( ):void
{
section.layers.wallpaper.removeChild( wallpaper );
wallpaper = null;
super.dispose( );
}
}
Reproduzindo Sons
private function onButtonClick( evt:MouseEvent ):void
{
section.sounds.play( "fx" );
}