расширение операторов доступа к массиву AS3 для «обертывания» значений индекса за пределами границ
я действительно хотел бы иметь возможность делать FlashСинтаксис доступа к массивузаворачивать' над массивомграницы.
Длительное объяснение -
var array:Array = ['a','b','c','d','e','f'];
Для простоты первый индекс равен 0, а его значение - первая буква «а», Чтобы получить это значение, мыбуду делать это -
array[0]; // returns 'a'
Пока индекс выИспользование для доступа к массиву находится между 0 и array.length (в нашем примере это 6), все работает нормально, но если вы используете индекс вне этих границ, выснова выключить.
array[-3];
array[9]; // both return 'undefined'
Иногда этоЭто хорошо - иногда вы ожидаете, что это произойдет, и вывсе в порядке с этим. В других случаях вы обнаруживаете, что хотите (или, по крайней мере, я этого хочу), чтобы этобуду вести себя немного больше так -
array[-3];
array[9]; // both return 'd'
(например, фотогалерея, которая возвращается к началу, когда вы нажимаетеследующий' на последнем фото)
Там'Небольшой кусок кода, который я использую снова и снова для такого рода вещей, но это 'Всегда менять индексдо передавая его в массив:
var index = -3;
while(index < 0){index += array.length}
array[index % array.length]; // returns 'd'
... и этоХорошо, но я действительно хочу расширить объект Array так, чтобы ондадим автоматическизаворачивать' значения индекса, выходящие за пределы.
TL; DR - возможно ли обтекание индекса расширением Flash AS3 'Массив объектов?