Обход выполняется, просто в массиве нет данных, а лишь 5 пустых, зарезервированных мест.
Если вы создаёте массив именно так
new Array(5), и если в скобках находится лишь одно число, то создаётся массив длинной равной этому числу, с пустыми значениями (undefined). Вы можете это легко проверить, написав

Код AS3:
trace(ar.length)
Если бы в скобках было чисел больше чем одно, то тогда бы массив создался именно с этими двумя значениями, как и ожидалось.
Лучше создавайте через квадратные скобки, чтобы не запутаться:

Код AS3:
var ar:Array = [5];
for each(var index:Number in ar) {
trace(1);
}