Tout d'abord, pour ceux qui utilisaient masapi 1.1 jusqu'à maintenant, pas de panique : la nouvelle version est 99% compatible avec l'ancienne ! J'ai mis un guide de migration en ligne.

Au menu des nouveautés, la plus importante est sans doute l'ajout d'informations avancées quant à la progression du chargement. Ces informations sont centralisées dans l'interface ILoadInfo qui est accessible depuis un IMassLoader.

function onMassLoadProgress(evt:ProgressEvent):void
{
   var src:IMassLoader = evt.target as IMassLoader;
   var infos:ILoadInfo = src.loadInfo;
 
   trace(infos.percentLoaded);
   trace(infos.currentSpeed);
   trace(infos.filesError);
   //...
 
   //utile au débuggage - liste toutes les propriétés
   trace(infos);
}

Une autre amélioration importante est que maintenant il n'est plus nécessaire de garder un référence sur les ILoadableFile créés ! Le CompositeMassLoader s'en charge par défaut pour vous. Evidemment, il faut par contre garder une référence sur le CompositeMassLoader pour y accéder :

var cml:CompositeMassLoader = new CompositeMassLoader();
cml.addFile("file1.txt");
cml.addFile("file2.swf");
 
//...
var file1:ILoadableFile = cml.getFileAt(0);
var allFiles:Array = cml.getFiles();

Concernant la récupération des données, il est désormais possible de fournir une classe à la méthode getData, ce qui permet de parser par défaut les données. La principale utilité de ceci est que l'on peut charger indépendamment un SWF via un objet Loader ou URLLoader.

var cml:CompositeMassLoader = new CompositeMassLoader();
var file1:ILoadableFile = cml.addFile("aFile.swf"); //utilise un Loader
var file2:ILoadableFile = cml.addFile("aFile.swf", LoadableFileType.BINARY); //utilise un URLLoader
 
//...
var ldr1:Loader = file1.getData("flash.display.Loader"); //ici, file.getData() aurait le même effet
var ldr2:Loader = file2.getData("flash.display.Loader");
var raw:ByteArray = file2.getData();

Cela offre également la possibilité de faire du parsing direct :

var cml:CompositeMassLoader = new CompositeMassLoader();
var file:ILoadableFile = cml.addFile("aFile.xml");
//...
 
var dataXml:XML = file.getData("XML");
var dataXmlDoc:XMLDocument = file.getData("flash.xml.XMLDocument");
var data:String = file.getData();

Ca fonctionne aussi pour du CSS :

var cml:CompositeMassLoader = new CompositeMassLoader();
var file:ILoadableFile = cml.addFile("aFile.css");
//...
 
var sheet:StyleSheet = file.getData("flash.text.StyleSheet");

Pour ce qui est de la dépendances des fichiers, j'ai mis en ligne il y a quelque temps un validateur qui permet de vérifier que le XML de configuration est conforme aux règles de masapi.

Il y a encore plein de petites nouveautés qui peuvent faciliter l'utilisation de l'API. J'ai également mis plus du tutoriaux sur googlecode ! Bien évidemment, tout feedback est bienvenu :)