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

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

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

Регистрация: Aug 2010
Адрес: http://sociofilm.ru
Сообщений: 23
Цитата:
Сообщение от mikhailk Посмотреть сообщение
На самом деле, на мой взгляд, циклы имеет смысл использовать только для перебора чего-то там в чем-то там. Например, объектов в коллекции, элементов в массиве или свойств в объекте.

Непосредственно в логике программы при асинхронном программировании циклы ничего кроме головной боли не принесут. Что мы, собственно, и наблюдаем.
все верно, в цикле перебираются элементы массива, в зависимости от сочетания элементов выполняется логика. Как обойтись без цикла я даже не знаю. Можно конечно на события переписать, но тогда будет значительный проигрыш в быстродействии.

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

Регистрация: Apr 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 355
Цитата:
Сообщение от Sociofilm Посмотреть сообщение
... Как обойтись без цикла я даже не знаю. Можно конечно на события переписать, но тогда будет значительный проигрыш в быстродействии.
по пунктам:
1) Надо перебрать все позиции
2) дожидаться события во время перебора

Как делал я:
  1. Создал объект который отвечал за один перебор, назовем его List.
  2. В List при старте определял массив со списком подлежащим к перебору.
  3. Собственно создаем цикл из трех методов:
    • Получить элемент массива. Если элемент необходимо ждать регистрируем слушатель события для следующего шага, если не надо следующий шаг пропускаем.
    • В данный шаг мы попадаем при наступлении события по окончании ожидания
    • Здесь производится проверка есть ли еще элементы в массиве List и если они имеются переходим на первый шаг списка, если нет выходим из цикла.
  4. Завершение всех процедур по работе с List
Вот и все. Теперь цикл выполняется, но при необходимости мы ожидаем наступления события. И ничего не мешает рекурсивно создавать внутри одного List другой.

Добавлено через 5 минут
Да еще как вариант. Вы можете предварительно загрузить весь список в некий кэш, а потом оттуда просто создавать копии экземпляров не дожидаясь загрузки, тогда ваш цикл будет работать в исходном виде, вот только загружать в кэш будете асинхронно перед этим, по сути получите то же самое.
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ

Старый 17.08.2010, 10:40
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 13  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Цитата:
Сообщение от Sociofilm Посмотреть сообщение
Можно конечно на события переписать, но тогда будет значительный проигрыш в быстродействии.
Да, конечно файл естесственно загружается моментально, особенно с удаленного компьютера, так что потеря производительности от того, что та же функция вызовется несколько раз вместо одного все испортит. Что за маразм вообще?
__________________
Hell is the possibility of sanity

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

Теги
загрузить , рекурсия , синхронно , файл

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

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


 


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


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