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

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

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

Регистрация: Feb 2009
Сообщений: 141
По умолчанию Печать в зеленом потоке (greenthreads) или асинхронные операции

Что это такое: http://help.adobe.com/ru_RU/as3/mobi...a95b-8000.html

Вобщем у меня есть механизм парсинга страниц для печати. 1 страница формируется приблизительно 50мс, все бы ничего, но если страниц много, то соответственно GUI перестает отвечать на действия пользователя, поэтому я реализовал процесс формирования страниц в зеленом потоке и здесь нет вобще никаких проблем.

Но после того, как страницы сформированы их все мне необходимо добавить в PrintJob, одна операция addPage, занимает в среднем 500мс, соответственно данную операцию я тоже делаю в зеленом потоке, но появилась проблема, во всех браузерах, кроме IE, флешка визуально вешается, т.е. GUI не отвечает, ничего не рендерит, хотя все операции четко выполняются как положено, только после ресайза окна, происходит рендер во флешке и опять все вешается при начале еще одной итерации addPage. Хочу заострить внимание на том, что в IE все замечательно работает (GUI вешается только на время выполнения addPage). У меня также нет возможности разбить итерации на менее ресурсотребовательные операции, т.к. 500мс занимает нативный метод addPage. В принципе меня устраивает полная загрузка в течении 500мс, но хотелось бы избавиться от "зависания" уже после того как addPage полностью отработал.

Буду признателен за любые идеи

Старый 27.09.2012, 19:51
Wadimir вне форума Посмотреть профиль Отправить личное сообщение для Wadimir Найти все сообщения от Wadimir
  № 2  
Ответить с цитированием
Wadimir

Регистрация: Nov 2009
Сообщений: 176
может попробовать использовать Worker? http://help.adobe.com/ru_RU/FlashPla...em/Worker.html

Старый 27.09.2012, 20:25
Vreden вне форума Посмотреть профиль Отправить личное сообщение для Vreden Найти все сообщения от Vreden
  № 3  
Ответить с цитированием
Vreden
 
Аватар для Vreden

Регистрация: Feb 2009
Сообщений: 141
Спасибо, не знал о существовании такого решения, но есть несколько но.

1. Версии среды выполнения: Flash Player 11.4
2. Каждый дополнительный объект worker создается из отдельного SWF-файла.

Вероятно, я в последствии приду к такому решению, но невозмутимые силы настаивают на использовании версии 10.1.

Большое спасибо, но я, конечно, был бы безумно рад еще идеям.

Старый 02.10.2012, 14:37
Lecosson вне форума Посмотреть профиль Отправить личное сообщение для Lecosson Найти все сообщения от Lecosson
  № 4  
Ответить с цитированием
Lecosson

Регистрация: Apr 2008
Сообщений: 80
Записей в блоге: 3
А если по исполнении addPage вешать setTimeout на выполнение следующего addPage?

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

Регистрация: Feb 2009
Сообщений: 141
Цитата:
Сообщение от Lecosson Посмотреть сообщение
А если по исполнении addPage вешать setTimeout на выполнение следующего addPage?
Изучите материалы по моей ссылке, пожалуйста, именно так и делаю.

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

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

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


 


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


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