J'ai un problème étrange concernant l'erreur Flash 1151: Un conflit existe avec la définition i dans l'espace de noms interne.Erreur Flash 1151 dans une boucle for
Voici le code problématique:
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 friggin est-ce ? Je veux dire que la variable i est tout le temps existe comme un nombre, typecasted comme un nombre, pourquoi diable le code ci-dessus échouerait alors?
Si je le modifie de cette façon, cela fonctionne, MAIS TRÈS LÉGÈRE ET POURQUOI EST-CE NÉCESSAIRE? AAARGGGHHHH ... Le développement Flash me rend fou. Donne-moi un pistolet :). Quelqu'un m'explique cela 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
Eh bien alors Flash/AS3 n'a jamais été une langue/interface utilisateur conviviale :). Quel comportement stupide: (((Merci. – Jauzsika