Quand je parle de contexte je parle de ce qui est autour de notre animation flash au moment où celle-ci se joue.
On peut donc définir différents type de contexte suivant notre utlisation :

Pourquoi définir et gérer le contexte de l'application ? tout simplement pour manipuler celui ci.
On pourra penser, par exemple, à ces quelques méthodes concernant le containeur ( implémentées dans Fever )

  • Définir le titre de la fenêtre courante
  • Positionner la fenêtre
  • Redimensionner la fenêtre

Pour le moment seul le containeur de l'application est prise en charge.
On pourra biensur penser à connecter les systèmes de fichiers sur le contexte, pour par exemple, enregister/ouvrir des fichiers indépendemment du contexte...enfin je reviendrais sur ce point dans quelques temps.

Fever définit 2 contextes en natif, mais l'ajout d'un autre est facile sachant que système est géré via le pattern Abstract Factory ( autrement appelé "Fabriques abstraites" ).
2 façon d'initialiser le contexte de l'application :

  • Appeler la méthode ContextManager.getInstance( maFacotry )
  • Utliser l'initialisation de Fever via la méthode run()
Example en utilisant la méthode run() de Fever
/**
 * Main MTASC access point.
 */
public static function main() : Void
{
	FeverDebug.isOn = true;
	
	Fever.run( new SamplesViewer(), BrowserContext.getInstance()  ); // ou StudioContext.getInstance()
}

Maintenant, on peut appeler les différentes méthodes liée au contexte.

/**
 * Triggers when Fever initialization is ok.
 */
public function run() : Void
{
	Fever.application.setTitle( "MyApplication caption" );
	Fever.application.setSize( 400, 300 );
	Fever.application.setLocation( 0, 0 );
}

Sans se soucier de ce qui se passe derrière, les méthodes sont envoyés suivant le contexte défini.
Pour le BrowserContext il faudra bien entendu avoir une ExternalInterface disponible ainsi qu'un petit fichier js définissant les méthodes appropriées.
Un exemple très simple de ce fichier se trouve sur le SVN dans la documentation de la classe BrowserContext

Voili voilà pour le petit update...
Le contexte me servira prochainement pour définir des opérations d'entrées / sorties ( au niveau fichiers ).
Mais il me reste encore pas mal de tests et de rélexions avant de mettre ça au point ;)
@+