Как создать счетчик «Пожалуйста, подождите» во время импорта данных - PullRequest
0 голосов
/ 19 ноября 2010

Я создаю приложение Flex AIR, которое импортирует данные из zip-файла в базу данных sqlite.Мне нужно показать индикатор выполнения / анимацию «Пожалуйста, подождите», чтобы пользователь дождался завершения операции.

Я пытался поместить всплывающую анимацию вращения, но проблема в том, что вращение прекращает вращаться, как только начинают выполняться запросы на импорт базы данных.

Мне нужно запускать как код счетчика, так и код импорта одновременно, а не последовательно.

Спасибо

Ответы [ 3 ]

1 голос
/ 25 мая 2011

Проблема, с которой вы здесь сталкиваетесь, заключается в том, что Flex является однопоточным приложением. Когда вы выполняете большие объемы обработки, поток не обновляет пользовательский интерфейс, поэтому ваш счетчик перестает вращаться.

Я думаю, вы можете обойти это, создав Green Thread для обработки вашего кода обработки, если он может быть выделен. Вы можете проверить здесь для реализации зеленой ветки as3.

Я могу предоставить больше информации о его реализации, если вам нужно.

1 голос
/ 19 ноября 2010

Ваша проблема может быть вызвана тем, что Flash является однопоточным.Попробуйте заменить импорт на таймер, чтобы убрать процессорную операцию.Если проблема не в этом, немного кода может ускорить отладку:)

0 голосов
/ 19 ноября 2010

Итак, если вам нужен просто спиннер, вам больше не нужны данные. Однако, если вам нужен индикатор выполнения, вам просто нужно знать, сколько там данных (скорее всего, размер почтового индекса будет достаточно точным). Затем - получите прослушиватель Event.ENTER_FRAME , в который вы возьмете часть данных, вставите в таблицу ... И остановитесь на этом. Затем он покажет анимацию материала. Попробуйте выяснить, какой объем данных является оптимальным ... Скорее всего, добавив туда также счетчик FPS, и, если он станет слишком низким, уменьшите его.

Если вам нужен индикатор выполнения, просто увеличьте переменную на количество байтов, которые уже были проанализированы, и разделите его на общее число байтов - отношение для индикатора выполнения. Отдых такой же как у прядильщика.

...