В вашем слушателе вы устанавливаете только положение одной платформы, на которую ссылается одна «движущаяся платформа». Поскольку все ваши сценические экземпляры движущихся платформ называются «movingplatform», одна удачная платформа получает ссылку по имени (остальные игнорируются) вместо того, что вы намеревались, то есть использовать ссылки в вашем массиве и настраивать каждую платформу.
Вы, вероятно, хотели, чтобы movingplatform был локальной переменной в вашем обработчике событий, объявил что-то вроде этого:
var movingplatform:DisplayObject = MovingPlatformArray[c] as DisplayObject;
Я бы рекомендовал использовать для каждого цикла вместо для in , потому что я думаю, что это немного чище, но это незначительная вещь стиля:
for each (var platform:DisplayObject in MovingPlatformArray)
{
platform.y += speed;
... rest of your code ...
}
Для ясности я отредактировал переменную цикла так, чтобы она была платформа вместо подвижной платформы, чтобы избежать путаницы с локальной переменной shadow экземпляра сцены (то есть this.movingplatform). Я хотел, чтобы было ясно, что имя экземпляра рабочей области здесь не используется, потому что непреднамеренная ссылка на имя экземпляра в вашем коде - это, в первую очередь, источник вашей проблемы.