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

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

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

Регистрация: Aug 2007
Сообщений: 124
Cool preloader и MovieClipLoader

Всем доброго времени суток. Может кто поможет советом. Есть основная врем. линейка куда посредством MovieClipLoader в различные клипы, последовательно загружаю 4 кактинки. Пример
Код:
var mclListener:Object = new Object();
var image_mcl:MovieClipLoader = new MovieClipLoader();
mclListener.onLoadComplete = function(target_mc:MovieClip)
{
	mclListener.onLoadComplete = function(target_mc:MovieClip)
	{
		mclListener.onLoadComplete = function(target_mc:MovieClip)
		{
			slideClip04.loadMovie("slideShowPic/image4.jpg");
			//image_mcl.removeListener(mclListener); это так на всякий случай
			gotoAndPlay("start");
		};
		image_mcl.loadClip("slideShowPic/image3.jpg",slideClip03);
	};
	image_mcl.loadClip("slideShowPic/image2.jpg",slideClip02);
};

image_mcl.loadClip("slideShowPic/image1.jpg",slideClip01);

image_mcl.addListener(mclListener);
Потом ставлю прелоадер. Пример
Код:
 frame 2
if (_root.getBytesLoaded () == _root.getBytesTotal ()) {
	percents = percents + 5.0;
	if (percents > 100.0) {
		percents = 100.0;
	}
} else {
	percents = Math.floor (_root.getBytesLoaded () / _root.getBytesTotal () * 100.0);
}
label = percents;

frame 3
if (percents < 100.0) {
	gotoAndPlay (2);
} else {
	_visible = false;
	_root.gotoAndPlay ("start");
	stop ();
}
и дело в том, что прелоадер не видит MovieClipLoader, и после загрузки всего мувика показывает пустые клипы, в то время как MovieClipLoader подгружает картинки. В конечном счете, со времененм, все картинки появляются но идея заключается в то, что бы сначала все картинки загрузились, а потом уже пошле проигрывание фильма. При этом мне нужно отображать процент загрузки фильма. Так вот вопрос. Как связать прелоадер с MovieClipLoader, так что бы прелоадер видел и отображал процент загрузки не только основной временной линейки ну и того что в нее загружается?

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

Регистрация: Mar 2006
Адрес: Москва
Сообщений: 415
Что?????

Я бы объяснил, но не могу понять того, что Вы написали... бардак.
- Грузите основной мувик, потом картинки, в чем проблема то?
- Зачем вообще в мувиклиплоадер писать - лоадмуви? Вы сами себе противоречите...
- где вы взяли эти примеры?
- если вы обращаетесь к байтслоадед и байтстотал... зачем какие то +5... что за бред, с ними и работайте.

Код:
/*
   Разобьем на 2 кадра весь наш процесс, хотя это неправильн. ИМХО! 
   В данном случае придется корректировать LinkageID у всех объектов подтягиваемых на сцену из библиотеки.
   Т.е. не грузить их в   первый кадр, как минимум, чтобы у первого кадра весь был нолевой...
   кадр 1
/*/
stop();
this.onEnterFrame=function() {
   var percentage:Number = Math.round((_root.getBytesLoaded()/_root.getBytesTotal())*100)
   outputText.text = percentage+'%';
   if (persentage==100){
      delete this.onEnterFrame;
      gotoAndStop(2)
   }
}
/*
   рисуем в кадре 2 (больше кадров у нас воообще не будет)
   В принципе можно и нужно использовать пример, приведенный ниже как функцию, чтобы потом, если что вызывать, 
   когда понадобится.
   В данном конкретном случае я этого делать не стал, просто закомментив строки, для наглядности...
/*/
stop();
//function loadContent() {
   var mcl:Object = new Object();
   var mclL:MovieCLipLoader = new MovieClipLoader();
   mclL.onLoad=function(target,loaded,total){
      outPutText.text = 'Заргузка изображения'+Math.round((loaded/total)*100)+'%'
   }
   mclL.onLoadComplete=function() {
      //действие при окончании загрузки
   }
   mclL.load(url, holder)
   mcl.addListener(mclL);
//}
Вообще, нарисованый выше пример считаю не правильным, поскольку всегд разделаю проект на 2 клипа, немного поправив, можно легко распилить вариант выше на два отдельных ролика, которые будут взаимодействовать друг с другом, а именно:
1 клип. Загрузчик. В нем содержатся осн. параметры проекта, загрузчик основного клипа в контейнер, которым является в свою очередь сам мувик. Все!
2 клип. Сам проект. Содержит в себе собственно все, что я хочу показать конечному пользователю...

Удачи.
__________________
Mix: Хобби | Работа | undefined


Последний раз редактировалось Infectedcell; 10.07.2008 в 11:02.
Старый 10.07.2008, 19:00
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 3  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
в событии onLoadStart создавайте предзагрузчик, в событии onLoadProgress считайте загруженные проценты, в событии onLoadComplete удаляйте что хотите, в событии onLoadInit можно делать все с пдгруженными клипами...

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

Регистрация: Aug 2007
Сообщений: 124
to Infectedcell: хай. Спасибо за ответ. То что код написан через ж.... это понятно, в целях экономии времени просто копирую из прошлых работ и модифицирую так что бы работал. За это мои извинения. То что ты показал, с внешним прелоадером, это понятно. Но мой вопрос заключался в другом. Неважно, если прелоадер внешний или внутренний, вопрос в том, что бы прелоадер видел то что загружается из вне в клипы, которые встроены в сцену. Дело в том, что он видит клипы, грузит их, но не считает время которое нужно на загрузку содержимого в эти клипы.
to AlexDesinger: хай. то что ты говоришь, ближе к истине. Я и сам об этом думал
Код:
myListener.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number)
{
	var percentDone:Number = bytesLoaded / bytesTotal * 100;
	showProgress(percentDone, progressMovie)
};
///////
myListener.onLoadComplete = function(target_mc:MovieClip)
{
  var loadProgress:Object = my_mcl.getProgress(target_mc);
  progressMovie._visible = false;
};

myListener.onLoadInit = function(target_mc:MovieClip)
{
	target_mc._alpha = 0;
	fade_dir = true;
	my_interval = setInterval(fade, fade_time);
};
(в этом примере я привел некоторые куски кода) с помощью onLoadProgress я могу следить за процессом загрузки в клипы на сцене, но как все это привязать к загрузке всей сцены? Можно ли создать слушатель для сцены _root и содержимого в клипах _mc как единый прелоадер?

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

Регистрация: Aug 2007
Сообщений: 124
Всем доброго времени суток. Решил поделится тем, к чему я на данный момент пришел.
Код:
var mclListener:Object = new Object();

mclListener.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number)
{
	var percentDone:Number = bytesLoaded / bytesTotal * 100;
	progressMovie.percentDoneLabel.text = String(Math.ceil(percentDone))+ " %";
};

var image_mcl:MovieClipLoader = new MovieClipLoader();

mclListener.onLoadComplete = function(target_mc:MovieClip)
{
	mclListener.onLoadComplete = function(target_mc:MovieClip)
	{
		mclListener.onLoadComplete = function(target_mc:MovieClip)
		{
			slideClip04.loadMovie("slideShowPic/image4.jpg");
			gotoAndPlay("start");
		};
		image_mcl.loadClip("slideShowPic/image3.jpg",slideClip03);
	};
	image_mcl.loadClip("slideShowPic/image2.jpg",slideClip02);
};
image_mcl.loadClip("slideShowPic/image1.jpg",slideClip01);

image_mcl.addListener(mclListener);

stop();
во втором кадре я запускаю этот код, счетчик показывает прцент загрузки внешнего контента в клипы, но дело в том, что с загрузкой новой картинки, счетчик обнуляется что и понятно. Мой вопрос, может кто подскажет, как показать общий процент загрузки в клипы? Дальше я буду думать как все это приплюсовать к процентам загрузки основной сцены.

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

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

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


 


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


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