Le bout de code suivant démontre bien la problématique :

public class RootDocument extends Sprite 
{
	public function RootDocument():void
	{
		trace(loaderInfo.parameters); //[object Object]
 
	        loaderInfo.parameters["test1"] = "value1";
	        loaderInfo.parameters.test2 = "value2";
 
	        trace(loaderInfo.parameters.test1);  //undefined
	        trace(loaderInfo.parameters.test2);  //undefined
	}
}

De toute évidence, l'objet pointé via loadInfo.parameters ne se laisse pas apprivoiser. Et on est en droit de se demander pourquoi...

En poussant le test un peu plus loin, le résultat est suprenant :

public class RootDocument extends Sprite 
{
	public function RootDocument():void
	{
		var obj:Object = loaderInfo.parameters;
		trace(obj == loaderInfo.parameters); //false
	}
}

Visiblement, à chaque fois que la propriété parameters est appelée, un nouvel Object est généré ! Je dois dire que j'ai du mal à comprendre pourquoi cela a été implémenté de la sorte...

Pourtant il serait utile de pouvoir ajouter des propriétés dynamiques (style références sur des objets) pour éviter de compiler des classes redondantes.

Dans l'intervalle, on devra se contenter de faire une classe avec des données statiques, pour autant que le contexte le permette :(