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

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

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

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
По умолчанию preload для презентации

Товарищи, помогите справиться с проблемой пожалуйста.

Я делаю прелоадер для презентации, состоящей из шести по разному сменяющих друг друга картинок. Намучился с ним уже. Ни внешний, ни внутренний не срабатывает. То есть, он ждет, когда bytesLoaded=bytesTotal, и запускается только после этого, но проигрывается все равно урывками и короче неправильно.
Вы не подскажете, в чем может быть проблема? Может быть дело в том, что те шесть картинок не в библиотеке презентации, а подгружаются динамически из соседней папки?

Старый 22.11.2008, 23:49
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 2  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Средствами одного флеша тут не справиться: он "замораживается" при загрузке с хард-диска и анимацию прогресс-бара не видно.

http://www.flasher.ru/forum/showpost...0&postcount=19

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

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
то бишь, как я понял, это неосуществимо?... хм.
Я вот пробую заморочиться так, чтобы делать загрузку всех подгружаемых картинок одновременно с загрузкой самого мувика, чтобы их btotal и bload складывались,образуя один прогресс бар...
Проект надо доделывать к понедельнику.... Так что ещё отпишусь. Глядишь что и выйдет.

Добавлено через 18 часов 44 минуты
Между тем либо меня глючит, либо я таки нашел решение. При проверке, по крайней мере, все работает.
Решить эту задачу получилось при помощи внутреннего прелоадера. Поскольку проблема была в том, что все картинки загружались отдельно, поэтому получалась неразбериха в кадрах и фильм шел рывками, я решил забить все картинки (6 штук) в один loader при помощи MovieClipLoader. Так как они загружаются параллельно, а не поочередно, то даже не пришлось складывать все их byteloader'ы и total'ы. То есть можно было сделать так:
Код AS1/AS2:
(pig1.bytesLoaded/pig1.bytesTotal+pig2.bytesLoaded/pig2.bytesTotal+pig3.bytesLoaded/pig3.bytesTotal+pig4.bytesLoaded/pig4.bytesTotal)/4
чтобы найти средний процент загрузки, который выводился бы в textField и являлся _xscale loading-поля.
Вообщем решение пришло неожиданно и как всегда работает непонятно от чего. Но оно проще, чем описанное. Вот:
Код AS1/AS2:
var loader:MovieClipLoader=new MovieClipLoader();
var listener:Object={}
loader.addListener(listener);
 
loader.loadClip("img/img1.jpg", pig1);
loader.loadClip("img/img2.jpg", pig2);
loader.loadClip("img/img3.jpg", pig3);
loader.loadClip("img/img4.jpg", pig4);
loader.loadClip("img/img5.jpg", pig5);
loader.loadClip("img/img6.jpg", pig6);
 
listener.onLoadStart=function():Void {
	_root.createTextField("preloader", 10234, 250,100,40,18);
	preloader.border = true;
	preloader.text ="0%";
	_root.stop();
	};
listener.onLoadProgress=function(clip:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
	preloader.text= Math.round(bytesLoaded/bytesTotal*100)+"%";
	var persent:Number = Math.round(bytesLoaded/bytesTotal*100)
	poloska._xscale= persent;
	};
listener.onLoadComplete=function():Void {
	_root.gotoAndPlay(2);
	preloader.removeTextField();
	poloska._visible=false;
	}
pig1,2,3,4,5,6 - это пустые клипы контейнеры, в которые загружаются картинки. Все эти клипы есть во флэшке уже с первого кадра, просто в невидимом состоянии, чтобы флэшь начинала подгружать их картинки сразу при загрузке первого кадра. Иначе косяк.
preloader- поле, которое отображает проценты циферками, а а клип poloska - синий прямоугольничек, _xscale которой равно процентам.
при начале загрузки картинок клип останавливает проигрывание. При завершении загрузки - идет и проигрывает клип со второго кадра.) А заодно прячет прогресс-бар.
Вообщем вроде как все правильно.

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

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

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


 


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


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