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

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

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

Регистрация: Jul 2010
Адрес: Сибирь
Сообщений: 98
Отправить сообщение для Heavy с помощью ICQ
Тогда какой смысл прогрессбаре или как его собственно заставить работать в динамике с программой? Собственно было желание сделать прогрессбар на обработку объектов (высчитывает скажем около 1000 объектов, после чего добавляет на дисплей), во время которой программа зависает на пару секунд. В этот момент и хотелось бы чтото вроде прогресс бара.

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
И? В чем проблема? Прогрессбар это просто отображение процесса, на важно загрузка объектов это или выполнение каких-то действий.
__________________
משיח לא בא
משיח גם לא מטלפן

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

Регистрация: Jul 2010
Адрес: Сибирь
Сообщений: 98
Отправить сообщение для Heavy с помощью ICQ
Спасибо за растолкование, буду пробывать

Добавлено через 1 час 24 минуты
Рассматриваемый прелоадер из 3 поста этой темы захватывает все события происходящие от его вызова
Код AS3:
[Frame(factoryClass="Preloader")]
и до функции указаной в прелоадере как "mainMVC"?


Последний раз редактировалось Heavy; 12.07.2011 в 15:05.
Старый 12.07.2011, 15:08
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 14  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Рассматриваемый прелоадер из третьего поста просто становится в кадр который идет перед мейном. Следовательно весь код в нем выполняется до того как мейн будет загружен.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 12.07.2011, 15:21
Heavy вне форума Посмотреть профиль Отправить личное сообщение для Heavy Найти все сообщения от Heavy
  № 15  
Ответить с цитированием
Heavy

Регистрация: Jul 2010
Адрес: Сибирь
Сообщений: 98
Отправить сообщение для Heavy с помощью ICQ
Тогда спрошу от обратного. Запустится ли функция Мейн, если объем данных еще не загрузился, потому что до этого у меня были листенеры которые сообщали о загрузке и только тогда запускали мейн...

Старый 12.07.2011, 15:27
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 16  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Какая "функция Мейн"? Конструктор класса Main? Нет не запустится, он еще не загрузился на этапе выполнения прелоадера. Более того, если его принудительно не создать, он вообще не запустится никогда.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 12.07.2011, 15:32
Heavy вне форума Посмотреть профиль Отправить личное сообщение для Heavy Найти все сообщения от Heavy
  № 17  
Ответить с цитированием
Heavy

Регистрация: Jul 2010
Адрес: Сибирь
Сообщений: 98
Отправить сообщение для Heavy с помощью ICQ
Извините, но что в данном случае есть "принудительно" :
Код AS3:
var mainClass:Class = getDefinitionByName("Main") as Class;
addChild(new mainClass() as DisplayObject);
или
Код AS3:
public function Main()

Старый 12.07.2011, 15:50
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 18  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
первое
__________________
משיח לא בא
משיח גם לא מטלפן

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

Регистрация: Jul 2010
Адрес: Сибирь
Сообщений: 98
Отправить сообщение для Heavy с помощью ICQ
Перерыл форум за последний год с темами про такую же модель прелоадера, но везде в примерах указано что они грузят картинку
Код AS3:
[Embed(source = '../lib/f1.jpg')] private var oh1:Class;
и не понятно как можно произвести загрузку при помощи URLLoader
Код AS3:
			var loader:URLLoader = new URLLoader;
			loader.load(new URLRequest("1234.txt"));

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

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Картинку они грузят просто чтоб чем-то нагрузить флешку чтобы добавить веса. Можно на нее не обращать внимания.

Короче суть флеша и прелоадера во флеше в следующем:

1. Есть флешка.
2. Флешка состоит из кадров и кода
3. А теперь надо понимать следующую штуку: флешка начинает проигрывать следующий кадр как только он уже загружен. Собственно поэтому прелоадеры делают легкими и пихают их в первый кадр. Так как даже если вся флешка будет 10мб весить, а прелоадер (т.е. первый кадр) будет весить 30кб - то этот первый кадр начнет проигрываться автоматом сразу после его загрузки, не дожидаясь загрузки основной флешки.
4. И теперь еще один момент. Так как мы пишем не на таймлайне (т.е. в кадрах), а кодом - то допустим флешка среднестатистического пользователя флешер.ру будет состоять всего из одного кадра если без прелоадера, и из двух если с прелоадером. Так как плевали мы на таймлайн.
5. Но то что мы куда-то там плевали адобов не особо парит. Флешка все-равно играется по кадрам и то что я написал в третьем пункте все-равно работает. И чтоб как-то уладить это наплевательство разработчики флекса запилили такую вот штуку как:
Код AS3:
[Frame(factoryClass="Preloader")]
которая вставляет кадр с указанным контентом там где стоит данный метатег. В данном случае перед инициализацией класса Main.

т.е. что мы имеем в итоге.
флешку из двух кадров.
в первом кадре у нас прелоадер который очень легкий, и который только и умеет что мерять загрузку флешки.
во втором класс мейн который содержит остальной код, и который тяжелый ровно настолько насколько мы его нагрузили всякой мутью.

Флешплеер грузит флешку по порядку. По кадрам. Сначала первый. Прелоадер. Хоп - он загрузился, начал выполняться. Потом грузит остальную флешку. Но тут еще одна мулька:
Второй кадр у нас содержит только код, это не какой-то там графический контент на таймлайне. Это просто класс. И вот этот код сам по себе исполняться не начнет. Его надо как-то заставить запуститься.

И вот здесь нам пригодится конструкция:
Код AS3:
var mainClass:Class = getDefinitionByName("Main") as Class;
addChild(new mainClass() as DisplayObject);
Поидее может возникнуть вопрос: "а почему не просто: "addChild(new Main())""
Но на него мы ответим так:
Если мы импортируем мейн в прелоадер тогда в задницу все наши танцы с бубном вокруг двух кадров. Так как мейн будет грузиться сразу же в первом кадре, так как на него будет стоять в нем ссылка.
Поэтому мы грузим безымянную неведомую х**ню. (Это с точки зрения флеша она безымянная-неведомая, но мы таки знаем как ее зовут). А потом уже инициализируем эту неведомую муть вот такой вот штукой как гетДефинишн. Ведь как только флешка загрузилась все ее классы стали доступны в некой коробочке в которой лежат все классы. И мы по имени класса из этой коробочки его достаем и инициализируем.

З.Ы. А к чему тут урллоадер я так и не понял...
__________________
Кто к нам с чем для чего - тот у нас того от того.

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

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

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


 


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


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