Просмотр полной версии : preloader и MovieClipLoader
solo19770701
10.07.2008, 08:35
Всем доброго времени суток. Может кто поможет советом. Есть основная врем. линейка куда посредством 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, так что бы прелоадер видел и отображал процент загрузки не только основной временной линейки ну и того что в нее загружается?:confused:
Infectedcell
10.07.2008, 10:31
Что?????
Я бы объяснил, но не могу понять того, что Вы написали... бардак.
- Грузите основной мувик, потом картинки, в чем проблема то?
- Зачем вообще в мувиклиплоадер писать - лоадмуви? Вы сами себе противоречите...
- где вы взяли эти примеры?
- если вы обращаетесь к байтслоадед и байтстотал... зачем какие то +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 клип. Сам проект. Содержит в себе собственно все, что я хочу показать конечному пользователю...
Удачи.
AlexDesinger
10.07.2008, 19:00
в событии onLoadStart создавайте предзагрузчик, в событии onLoadProgress считайте загруженные проценты, в событии onLoadComplete удаляйте что хотите, в событии onLoadInit можно делать все с пдгруженными клипами...
solo19770701
10.07.2008, 20:02
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 как единый прелоадер?
solo19770701
10.07.2008, 21:45
Всем доброго времени суток. Решил поделится тем, к чему я на данный момент пришел.
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();
во втором кадре я запускаю этот код, счетчик показывает прцент загрузки внешнего контента в клипы, но дело в том, что с загрузкой новой картинки, счетчик обнуляется что и понятно. Мой вопрос, может кто подскажет, как показать общий процент загрузки в клипы? Дальше я буду думать как все это приплюсовать к процентам загрузки основной сцены.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.