J'ai un problème étrange concernant l'erreur Flash 1151 : Un conflit existe avec la définition i dans l'espace de noms internal.
Voici le code qui pose problème :
for(var i:Number=dt.getFullYear(); i >= dt.getFullYear()-90; i--)
{
dtYear.addItem( {label:i, data:i} );
} //for
//-*-*-* Month
for(var i:Number=0; i < months.length; i++)
{
dtMonth.addItem( {label:i, data:i} );
} //for
Ou un exemple plus flagrant :
for(var i:Number=0; i < 12; i++)
{
trace(i);
} //for
//-*-*-* Month
for(var i:Number=0; i < 12; i++)
{
} //for
Adobe donne une explication :
You cannot declare more than one variable with the same identifier name within the same scope unless all such variables are declared to be of the same type. In ActionScript 3.0, different code blocks (such as those used in two for loops in the same function definition) are considered to be in the same scope.
Qu'est-ce que c'est que ce bordel ? Je veux dire que la variable i existe tout le temps en tant que Nombre, tapée en tant que Nombre, pourquoi diable le code ci-dessus échouerait-il ?
Si je le modifie de cette façon, cela fonctionne, MAIS C'EST INUTILE ET POURQUOI A-T-ON BESOIN DE CELA ? AAARGGGHHHH... Le développement Flash me rend fou. Donnez-moi un pistolet :). Quelqu'un peut m'expliquer ce qu'il en est, s'il vous plaît.
Code de travail :
for(var i:Number=dt.getFullYear(); i >= dt.getFullYear()-90; i--)
{
dtYear.addItem( {label:i, data:i} );
} //for
//-*-*-* Month
for(i=0; i < months.length; i++)
{
dtMonth.addItem( {label:i, data:i} );
} //for