The Loading API – Namespace

Dernier point sur l’utilisation de l’API de chargement de Pixlib.
L’abstraction mise en place dans l’API oblige certaines fois à réaliser du transtypage pour récupérer le véritable système de chargement utilisé.

Les namespaces vont permettre d’éviter ceci et garder un typage fort lors de l’écriture du code.
Par exemple, avec une utilisation du PXGraphicLoader.

package
{
	public class Sample extends Sprite
	{
		public function Sample()
		{
			var loader : PXLoader = new PXGraphicLoader(this);
			loader.addEventListener(PXLoaderEvent.onLoadInitEVENT, _onGraphicLoaded);
			loader.load(new URLRequest("picto.jpg"), PXLoaderContext.getInstance());
		}
 
		private function _onGraphicLoaded(event : PXLoaderEvent) : void
		{
			var loader : PXGraphicLoader = PXGraphicLoader(event.loader);
			loader.visible = false;
		}
	}
}

Afin d’éviter l’écriture systématique des transtypage, Pixlib définie des namespaces dédiés pour chaque type de chargement. Ainsi, pour garder un typage fort lors de l’écriture, il possible de faire :

package
{
	public class Sample extends Sprite
	{
		public function Sample()
		{
			var loader : PXLoader = new PXGraphicLoader(this);
			loader.addEventListener(PXLoaderEvent.onLoadInitEVENT, _onGraphicLoaded);
			loader.load(new URLRequest("picto.jpg"), PXLoaderContext.getInstance());
		}
 
		private function _onGraphicLoaded(event : PXLoaderEvent) : void
		{
			event.pixlib_GraphicLoader::loader.visible = false;
		}
	}
}

Voici la liste des namespaces disponibles dans Pixlib, leur nom étant basé sur le système de chargement désiré :

  • pixlib_CSSLoader
  • pixlib_FileLoader
  • pixlib_GraphicLoader
  • pixlib_StreamLoader
  • pixlib_XMLLoader

Ce ciblage par namespace est aussi disponible pour le PXLoaderLocator (agrégation des chargements).(cf article)

Happy coding with Pixlib !

This entry was posted in Core, Framework, Tutorial and tagged , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">