Для каждого в перечислении для пользовательских классов наборов данных

#flash #actionscript-3 #enumeration

#flash #actionscript-3 #перечисление

Вопрос:

У меня довольно стандартная реализация кругового, двухстороннего связанного списка. Для массивов я бы обычно использовал for each in для просмотра каждого элемента без необходимости беспокоиться.

Проблема связана с моим пользовательским связанным списком, который нельзя просмотреть с помощью простого вызова. Я бы предположил, что если в AS3 есть прокси-класс, есть высокие шансы, что команда Adobe придумала идею для реализации, я не знаю… Перечислимый класс или что-то в этом роде? Тем не менее, мой поиск оказался нулевым.

Есть ли способ заставить For Each In работать с пользовательским классом во Flash? Не просматривать все свойства объекта, а просматривать весь набор данных, представленный этим классом.

Ответ №1:

Вы можете прочитать этот пост о прокси-классе в моем блоге. Вы можете найти примеры реализации логики «для каждого».

Комментарии:

1. Потрясающе! Я видел прокси, используемый ранее только для свойств, и некоторое время назад прочитал документацию, и поэтому я был уверен, что в нем не было такой функциональности; оказывается, я был неправ. Спасибо!

Ответ №2:

Да, вы правы, проверьте Proxy класс.

В частности nextName nextNameIndex nextValue , будут представлять интерес методы , , и .

Пока у вас есть легкий доступ к элементам вашего списка по индексу, вы должны иметь возможность реализовать for…in петля.

Ответ №3:

Вы должны реализовать пользовательские hasNext() методы и next() методы и просто перебирать список объектов

Комментарии:

1. Кроме того, вы можете взглянуть на шаблон проектирования итератора as3dp.com/2008/09/04 /…