![]() |
Управление ходом иницализации Application
добрый день
в общем, проблема такая: есть flex-приложение, ресурсы хранятся отдельно. в зависимости от локали с помощью resourceManager.loadResourceModule грузится тот или иной ресурс. дак вот проблема в том, что Application успевает проинициализироваться до того как догрузятся ресурсы, следовательно все надписи и рисунки не отображаются пока не догрузится файл ресурсов. дак вот, можно ли как-то управлять ходом инициализации приложения, чтобы прелоадер отображался вплоть до завершения загрузки ресурсов? если нельзя, то может есть какие-то другие предложения? |
я сделал следующим образом, у меня при инициализации запускается и загружается множество всего, и функции, и картинки и xml
Код AS3:
Код AS3:
а если вам нужно имеено ожидание от загрузки фото например то вот таким способом можно Код AS3:
|
Сделать два состояния. В первом показать прелоадер для ресурсов. Во втором само приложение. После загрузки модуля переключиться на второе состояние.
|
Цитата:
в общем, пара часов ковыряния исходников flex привели к следующим результатам: инициализация компонента происходит в методе initialize (в классе UIComponent). по-сути, можно попробовать его переопределить, но создавая приложение в mxml разметке, этот метод уже переопределяется, так-что нам его уже не переопределить (точнее можно, но нужно наследоваться в обычном as файле). также замечаем, что есть свойство initialized, которое становится true, когда компонент уже проинициализирован. так может нам вручную проставить его в false. но так тоже делать нельзя, так как управлением этого свойства занимается LayoutManage. идем в его исходники и замечаем, что устаановка этого свойства происходит на основании значения свойства processedDescriptors. причем попутно замечаем, что это свойство как раз меняется после выполнения инициализации посредством вызова метода initializationComplete. вот оно! его то мы и переопределим. в итоге получаем следующее: Код AS3:
UPD: кстати данное управление инициализацией возможно и в других компонентах (что кстати и сделано в некоторых стандартных) |
В принципе есть еще варианты:
1. Загрузить модуль в прелоадере, что бы он попал в кэш. Это ускорит повторную загрузку. 2. Загрузить модуль в прелоадере, и скормить в resourceManager уже загруженный. |
Цитата:
Цитата:
|
Да. впрочем его в любом случае пришлось бы делать свой.
|
| Часовой пояс GMT +4, время: 11:10. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.