During my tests with Flex2 I encountered a strange behavior with the “for” statement and I first thought about a bug of the player.
This simple script was crashing the player (it enters in an infinite loop):
<?xml version="1.0" encoding="utf-8"?>
private function test():void
{
for(var a:uint = 10; a >= 0; a--)
{
trace(a);
}
}
Once I changed the type of the “a” variable into a “Number” and an “int” I understand what I was missing…
The script worked well after the type change. But to be sure I did also a little test in C which gave me the same results as the flex2 one (infinite loop):
int main(int argc, char *argv[])
{
unsigned int a;
for(a = 10; a >= 0; a--)
{
printf("a = %d\n", a);
}
system("PAUSE");
return 0;
}
Yes, it’s absolutely logical!
After the last step, when a is 0, the program loses next value because it cannot be a negative value and then the loop continues to cicle.
Ok, it’s not a player bug… it’s me 🙁