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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.02.2013, 19:43
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 11  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Guitariz, "кривовато" ваше решение, если очень деликатно говорить
__________________
hauts.ru

Старый 25.02.2013, 20:03
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 12  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Цитата:
Сообщение от Guitariz Посмотреть сообщение
и все равно кривовато, начинает действие одна функция, а завершает другая
Это не кривость, это правильная реализация.
Скажем, в консольных приложениях можно остановить работу программы в ожидании действий пользователя.
В интерфейсном приложении так не получится. Кроме основного кода, есть множество других функций.

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

В AS3 нет многопотоковости (хотя плеере 11.4 появился Worker). Более того, вы не забывайте, что это флеш и его начальное предназначение - анимация, то есть есть последовательное проигрывание кадров.
А каждый кадр состоит из следующих частей:
1. Идет рассылка событий типа клика мыши или нажатия клавиши
2. Идет рассылка события Event.ENTER_FRAME
3. Идет рассылка события Event.EXIT_FRAME
4. Идет рассылка события загрузки, типа Event.INIT, Event.OPEN, Event.COMPLETE и тп.
5. Идет рассылка события Event.RENDER
6. Плеер выводит графику (рендеринг).

И пока любая из этих частей не выполнится, следующая не запустится. Визуально программа просто встанет. Не будет ни анимации, ни реакции на клаву или мышь.
Поэтому вы подписываетесь на событие и ждете, когда оно сработает. А в это время программа продолжает выполнять свои задачи.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Jan 2009
Сообщений: 1,651
Это не кривовато. Это событийная система. Это не бейсик, где ручками нужно создавать основной игровой цикл, в котором ожидать нажатия кнопок, мышки и т.д. Тут основной цикл, в котором работает флешка существует независимо от вас, вы, наоборот, вклиниваете свои события и дейсвия в него.
__________________
мой пустой блог

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

Регистрация: Feb 2013
Сообщений: 10
Всем спасибо, решил задачку

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

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

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


 


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


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