PDA

Просмотр полной версии : Прелоадер


SkyLane
30.05.2006, 15:12
Эта тема тут много раз обсуждалось. Почитла-ничего не помогло.
Как сделать простой прелоадер ко всему сайту? Помогите, пожалуйста.
У меня весия MX 2004

MyXus
30.05.2006, 15:25
в первом кадре только прелоадер
со второго кадра - весь остальной мув
stop();
var intervID;
intervID = setInterval(function() {
var t = _root.getBytesTotal();
var l = _root.getBytesLoaded();
if(t==l) {
clearInterval(intervID);
_root.gotoAndPlay(2);
return;
}
preloader_mov.gotoAndPlay(Math.round(100*l/t+1));
}, 20);

MyXus
30.05.2006, 15:26
Не проверял, но должно работать.
preloader_mov - 101-кадровый мув прелоадера.
(это всё как одна из вариаций)

Bkmz
30.05.2006, 15:27
> Как сделать простой прелоадер ко всему сайту?
у тебя весь сайт - флешка? если да, то так как написано в многочисленных примерах.

SkyLane
30.05.2006, 15:36
Ладно. Так получается, что если хочешь сделать что-нибудь нужно в первый кадр тыкнуть симво-муви-клип?

MyXus
30.05.2006, 15:42
А в чем проблема.
Ну можно и не создавать новый кадр, но это уже исходя из конкретной задачи.

SkyLane
30.05.2006, 15:45
Ну я на самом деле просто хочу чтобы у меня вместо белой дырки на черном фоне что-нибудь поприличнее было.

MyXus
30.05.2006, 15:51
Ну так сделай поприличнее :-)

-=GRAF=-
30.05.2006, 16:38
Для пред лоадера с progressbaroM 100%;
И скорость, время и прогрес.
1) Первый наш кадр называем "loading" и вставляем код stop(); ;
2) Потом рисуем линию ( progressbar) выделяем его и нажимаем F8, ставим галочку на Мovie Clip и нажимаем ок.
3) Называем нашу линию "progressbar" ОМ, и вставляем в наш Movie Clip этот код:
onClipEvent(load) {
// get starting information
totalFileSize = _root.getBytesTotal();
startTime = getTimer();
startBytes = _root.getBytesLoaded();

// hide progress bar
this._xscale = 0;
}

onClipEvent(enterFrame) {
bytesLoaded = _root.getBytesLoaded();
amountLoaded = bytesLoaded/totalFileSize;
percentLoaded = int(100*amountLoaded);
this._xscale = percentLoaded;
timeSoFar = getTimer() - startTime;
speed = bytesLoaded/timeSoFar;
bytesLeft = totalFileSize - bytesLoaded;
timeLeft = (bytesLeft/speed)/1000;
speed = int(10*speed)/10;
_root.bytesMessage = int(bytesLoaded/1000) + "kb/" + int(totalFileSize/1000) + "kb";
_root.speedMessage = speed + "k/sec";
_root.timeMessage = int(timeLeft) + " seconds remaining";
if (amountLoaded >= 1.0) {
_root.gotoAndStop("complete");
}
}


4) Делаем три динамических поля в кадре (не в мувике) и даем им названия переменных, тоесть var:
1)вое "bytesMessage"
2)рое "speedMessage"
3)тье "timeMessage"

5) Делаем второй кадр и называем его "complete"
6) Сколько бы слоев небыло будет работать.
7) Когда запустешm будет 2торой кадр где написано "comlete";
Что б проверить лоадер, сотри слово "comlete" на втором кадре, а потом снова поставь.
8) Юзай поиск, этого ваще полно!
9) Не поможет, я незнаю.. учи основы тогда... или ищи исходники...:rtfm:

ToXICus
17.06.2006, 22:52
А как сделать красивую полоску загрузки, исползуя неоднородную растровую картинку буз применения _xscale & _yscale?

iNils
17.06.2006, 23:04
Маской.

PSoWP
18.06.2006, 01:54
2-=GRAF=-
Лучше сетИнтервал использовать, а то мувик грузится ,а ентерфрам грузит сильней и, если даил ап, то значительно.
Хотя щас у многих уже норм интернет канал, а для выделинки это не сильно заметно...
Но всётаки о других подумать надо.

etc
18.06.2006, 12:24
setInterval тормозит ничуть не меньше.

iNils
18.06.2006, 12:26
Кто мне сможет объяснить связь между dial-up и onEnterFrame?

etc
18.06.2006, 12:30
Никакой связи. А интервал пригодится в случае невизуального процесса, но никак не для визуального изменения чего-либо (если интервал меньше времени смены кадра, к длинным промежуткам это не относится)

PSoWP
18.06.2006, 15:02
Интервал нормальный а не setInterval(aaa,1), я имел в виду что можно вызывать функцию раз в секунду или на худой конец раз в полсекунды, а это поможет дайл апу оч сильно.

iNils
18.06.2006, 15:10
Интересно как?

delici
22.09.2006, 01:59
не пашет....

_bkt
22.09.2006, 02:14
Всегда брал такой код, никогда не подводил (гориз. прелоадер):

onClipEvent (load) {
total = _root.getBytesTotal();
}
onClipEvent (enterFrame) {
loaded = _root.getBytesLoaded();
percent = int( loaded / total * 100);
text = "загружено на " + percent + "%";
gotoAndStop(percent);
if (loaded == total) {
_root.gotoAndStop(2);
}
}

Вешается на мувиклип, в нутри которого 100 кадров, и динамическое поле text + анимация через маску, под которой что Вам угодно.

delici
22.09.2006, 02:34
странно..не хочет работать и все...я уже и на хосте пробовал удаленном..нивкакую

pkfun
22.09.2006, 02:59
Про внешний загрузчик и класс MovieClipLoader уже и не вспоминают. Я как-то находил на этом форуме много примеров...

_bkt
22.09.2006, 03:09
2 delici
Вот тебе: http://expogas.com.ua/preload.fla

Должно работать, сохранил для 7-ки, разбирайся.

Nick Rogalev
22.09.2006, 08:30
А как сделать красивую полоску загрузки, исползуя неоднородную растровую картинку буз применения _xscale & _yscale?
Может быть использовать маску?

Neosano
22.09.2006, 12:07
во, проще не бывает!

Neosano
22.09.2006, 12:07
2_bkt
Писать код в мувиклипах, кхм... (с)