Bonjour les amis, aujourd'hui un bug tout en subtilité sur lequel je suis tombé hier :
Conditions :
- Vous êtes à l'intérieur d'une clause switch/case
- Vous voulez déclarer une variable de type XML ou XMLList et lui affecter une valeur sur une même ligne
Bingo, le contenu de la variable sera null ...
Exemple :
switch(condition)
{
case 0:
var content:XML = xmlListObject.node.(@id == id)[0]; // l'expression renvoie bien un noeud XML
trace(content); // -> null
break;
case 1:
...
}
Solution :
Très simple à résoudre, il suffit de déclarer puis affecter la valeur en 2 temps :
switch(condition)
{
case 0:
var content:XML;
content = xmlListObject.node.(@id == id)[0];
trace(content);
break;
case 1:
...
}
Voilà, simple et efficace. Merci à ce billet pour avoir trouvé la solution, à Fred pour avoir trouvé ce billet, et visiblement à Adobe pour avoir corrigé le souci dans la dernière version du player (la page du bug sur Jira est ici).