Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.01.2009, 03:14
Turetskiy вне форума Посмотреть профиль Отправить личное сообщение для Turetskiy Найти все сообщения от Turetskiy
  № 1  
Ответить с цитированием
Turetskiy
 
Аватар для Turetskiy

Регистрация: Oct 2008
Сообщений: 3
Question ProgressBar и циклы

Доброго времени суток всем.
Есть у меня в проге два цикла (вложеных), работают в среднем секунд
пять-семь (обработка изображения). И надо пока они трудятся показать пользователю progressbar, шоб не скучал. Но, как ни пытался, progressbar отрисовывается только после того как циклы отработают полностью.
Можно ли с этим как-то бороться?

З.Ы.
когда-то возникала у меня такая проблема на Delphi, там все решилось
перерисовкой, но во Flex, возможности перерисовать заданную область или,
пусть даже все окно - не нашел... Может не там ищу?

Заранее благодарен.

Старый 07.01.2009, 04:29
fljot вне форума Посмотреть профиль Отправить личное сообщение для fljot Найти все сообщения от fljot
  № 2  
Ответить с цитированием
fljot

блогер
Регистрация: Jul 2007
Сообщений: 940
Записей в блоге: 3
по-моему, слишком долго циклы работают.. есть опасность появления сообщения "acionscript is running to slow on this machine ..."
плюс, если я не ошибаюсь, плеер замирает, пока исполняются циклы.

так что я бы посоветовал немного размазать работу циклов по времени, чтобы и progressbar мог обновиться и таймаута не было

Старый 07.01.2009, 21:50
AQUAFRESH вне форума Посмотреть профиль Найти все сообщения от AQUAFRESH
  № 3  
Ответить с цитированием
AQUAFRESH
Banned

Регистрация: Sep 2008
Сообщений: 235
хм... для этого нада многопоточность... хотя Flex её не подерживает...
Перерисовка области ... есть... я её дето видел... можешь вот сдесь посмотреть...
http://livedocs.adobe.com/flex/3/langref/mx/

Старый 08.01.2009, 19:12
kutuzov вне форума Посмотреть профиль Отправить личное сообщение для kutuzov Найти все сообщения от kutuzov
  № 4  
Ответить с цитированием
kutuzov
 
Аватар для kutuzov

Регистрация: Jul 2005
Сообщений: 135
1. перед началом цикла засекаем время - getTimer()
2. на каждой итерации цикла смотрим сколько прошло, если больше, допустим 40 мс (что соответствует 25 кадрам в секунду), прерываем цикл и запоминаем последние значения для этого цикла.
3. выводим процент выполнения.
4. на следующем кадре необходимо восстановить цикл, чтобы он продолжил считать с того места где мы его прервали.
5. и снова засекаем время и на каждой итерации проверяем прошедшее время
и т.д.
__________________
хоумпага

Старый 12.01.2009, 10:47
nibb13 вне форума Посмотреть профиль Отправить личное сообщение для nibb13 Найти все сообщения от nibb13
  № 5  
Ответить с цитированием
nibb13

Регистрация: Oct 2008
Сообщений: 2
kutuzov, в принципе, всё верно объяснил. Остаётся лишь добавить опыт Жени Потапенко:
Ссылка нумберо уно
Ссылка нумберо дос

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:16.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:16.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.