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

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

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

Регистрация: Apr 2010
Сообщений: 170
По умолчанию Многопоточность

Всем доброго утра!

Есть код, который последовательно через создание новых Loader'ов загружает изображения с сервера. Загрузил одно, грузит другое. В общем-то получается довольно долго. Можно как либо этот процесс ускорить? Например создать заранее нужное количество Loader'ов и в цикле прокрутить их на загрузку. А потом в одной функции обратного вызова подсчитывать количество срабатываний и уже двигаться дальше, если их число равно число сработанных load'ов. Что-то такое прокатит или какие варианты?

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Попробуйте, разве самому не интересно, чем ждать ответа? А какой оргазм от того, что получится ;о))
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 23.12.2011, 12:36
s3dworld вне форума Посмотреть профиль Отправить личное сообщение для s3dworld Найти все сообщения от s3dworld
  № 3  
Ответить с цитированием
s3dworld

Регистрация: Apr 2010
Сообщений: 170
GBee
> Попробуйте, разве самому не интересно, чем ждать ответа? А какой оргазм от того, что получится ;о))
Время тратить не хочется на поиски. Сроки)) Я оптимизирую код написанный другим программистом. Жду советов...

Старый 23.12.2011, 12:50
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 4  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Да, можно. Loader грузит файлы асинхронно.

Старый 23.12.2011, 12:52
s3dworld вне форума Посмотреть профиль Отправить личное сообщение для s3dworld Найти все сообщения от s3dworld
  № 5  
Ответить с цитированием
s3dworld

Регистрация: Apr 2010
Сообщений: 170
GBee
> Да, можно. Loader грузит файлы асинхронно.
Но функция обратного вызова (укажу для всех Loader'ов одну) будет вызываться последовательно же?

Старый 23.12.2011, 13:02
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 6  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
она будет вызываться столько раз, сколько загрузчиков кинет событие об окончании загрузки, которое слушается в классе. И вызываться будет в той последовательности, в какой загрузчики заканчивают свою работу. Если первый загрузчик грузит большую картинку, а второй маленькую, естественно второй отработает раньше

Старый 23.12.2011, 13:08
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 7  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Да, колбэк вызывается по очереди. Все именно так потому что:
1) флеш плеер просит браузер загрузить а
2) флеш плеер просит браузер загрузить б
...
3) браузер выделяет потоки загрузки и начинает загружать
4) что-то загрузилось - браузер отдает контент флеш-плееру
5) у флеш плеера возникает событие Event.COMPLETE
6) если за 1 кадр произошло несколько событий, то они обрабатываются последовательно, в порядке их возникновения или приоритета слушателей.

То есть, грубо говоря, флеш плеер - это штука, которая "живет" один кадр. Набралось событий за этот кадр - они обработались. Переходим к следующему кадру, там снова собираем события и снова их обрабатываем.
Такой алгоритм работы называется state-machiene (ну или конечный автомат). У программы есть несколько состояний и она последовательно переходит из одного в другое все время своей жизни.
__________________
...вселенская грусть

Старый 23.12.2011, 23:08
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 8  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
Время тратить не хочется на поиски. Сроки)) Я оптимизирую код написанный другим программистом. Жду советов...
//trollmode on
11:08 - 10:29 = 0:39 минут. Проверка самому составила бы минут 10-15.
//trollmode off
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 23.12.2011, 23:14
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 9  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Есть готовые решения. К примеру, BulkLoader.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

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

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

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


 


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


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