В данном случае, когда Вы хотите одним кодом работать с большим количеством объектов логично было бы описывать некоторые свойства как свойства этих объектов. То есть я имею в виду, что position и flag имеет смысл сделать свойства Ваших программно создаваемых звуков. Сделать это совсем не сложно. Просто прописав свойство через оператор точки и задав ему значение. Например так:

Код AS1/AS2:
sounds[i].position=0;
sounds[i].flag=true;
Это если на этапе создания звука. Соответственно если на этапе выполнения функции закреплёнными за звуком, то можно сделать так:

Код AS1/AS2:
this.position=0;
this.flag=true;
Ну и в Ваших условиях разумеется тоже проверяйте значения не position и flag, а this.position и this.flag.
Всё должно получиться.