Моя цель
Я хотел бы сделать приложение для PlayBook (с использованием Flex), интерфейс которого похож на веб-браузер PlayBook. Под аналогичным я подразумеваю, что хочу реализовать меню, которое отображается, когда пользователь проводит вниз с верхней панели планшета. Мне нравится эта функция, потому что я могу рисовать на ней, размещать тонны других объектов и обрабатывать все виды событий без использования экранного пространства, когда это не нужно. Кроме того, в PlayBook нет кнопки «Меню», как в некоторых телефонах.
В зависимости от конфигураций, выбранных в первом представлении, ряд других представлений будет помещен в представление стека. Когда пользователь получит доступ к выпадающему меню, я хотел бы показать в виде миниатюры снимок моего основного (представление конфигурации) и остальных представлений, которые находятся в стеке представлений. Это в основном покажет пользователю, что происходит в другом представлении, и позволит ему выбрать, на что переключаться.
Достигнуто до сих пор
Меню доступно из любого представления, но код для обработчика событий находится в моем основном файле MXML (project.MXML), я обнаружил, что это единственный способ иметь одно меню для всех представлений.
Мне удалось вывести меню из любого вида и отобразить миниатюру текущего вида.
Моя проблема
Как получить доступ ко всем просмотрам. Я пробовал весь день, и все мои испытания дают мне доступ к активному представлению и моему объекту меню. Вот некоторый код, чтобы показать, что происходит:
// This is in my default view MXML
navigator.pushView(MainView);
navigator.pushView(SecondView);
navigator.pushView(ThirdView);
navigator.pushView(FourthView);
.......
// And this is where I try to gain access to my Views (in the Project.MXML)
var totalViews:int = navigator.length;//Length is 5 (4 Views plus menu which is wright)
var obj:Object;
for(var i:int = 0; i < totalViews; ++i)
{
obj = navigator.getElementAt(i);// Tried child here, it's not working either
var currentThumbnail:Preview = new Preview();
var bmData:BitmapData = new BitmapData( obj.stage.width, obj.stage.height );
bmData.draw(obj.stage);
currentThumbnail.setSize( m_previewH, m_previewW );
currentThumbnail.setBitmap( bmData );
currentThumbnail.setLayoutBoundsPosition(i * m_previewW + PREVIEW_GAP * i, 10);
slideMenu.addChild( currentThumbnail );
trace(i.toString() + " " + obj.toString());
}
Как я упоминал выше, цикл for успешно выполнит работу для текущего представления, а затем завершится сбоем. Кто-нибудь знает, как выполнить цикл по всем представлениям?
Это мое первое приложение с flex, поэтому, если есть какие-либо альтернативы моему подходу, я буду рад их попробовать. Хотя я хотел бы придерживаться одного ViewNavigator, а не навигатора с вкладками и нескольких представлений вместо состояний, я не возражаю против предложений с этой стороны.
ТИА.