#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 /…