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" );
}