Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   помогите моему несчастью... (http://www.flasher.ru/forum/showthread.php?t=45645)

SerNet 07.06.2003 01:34

помогите моему несчастью...
 
Второй день парюсь....
Как сделать прелоад на все swf?
У меня есть главный swf и куча дочерних.
Я знаю скриптом, нужно наверно массив сделать, потом передовать переменные....но блин нифига не получается :(
Есть же добрые люди на свете, может кто откликнется-поможет.........

DUDE 07.06.2003 02:07

Делай в каждом прелоадер и всё будет пучком! только в каждом не пиши:
_root.getbytestotal
пиши просто:
this.getbytestotal

SerNet 07.06.2003 02:14

ага, но всё же, один прелоад на все swf-ки можно же сделать?
надо иненно такой скрипт....

SerNet 07.06.2003 05:05

toDUDE:
В главном делаю так:
if (_root.getBytesLoaded()>=_root.getBytesTotal()) {
gotoAndPlay("Scene 3", 1);
}
в последующих так:
if (_root.getBytesLoaded()>=this.getBytesTotal()) {
gotoAndPlay(1);
}
и что то всё равно не пашет ... ну млин есть же умные люди на свете .... или нет?! как надо.............

DUDE 07.06.2003 14:20

Мне непонятно куда ты грузишь в _level или другой мувик??
если в левел тогда так:
Код:

1-ый кадр
loadMovieNum(url,1);

2-ой кадр
l=_level1.getBytesLoaded();
t=_level1.getBytesTotal());

3-ий кадр
if (l==t){
gotoAndPlay(4);
}else if(l<t){
gotoAndPlay(2);
}


Pietrovich 08.06.2003 18:30

Код:

MovieClip.prototype._newMovie = function (newMovieName)
{
 this.createEmptyMovieClip( newMovieName, this.getTop());
 return this[newMovieName]
}
MovieClip.prototype.getTop = function ()
{
        var i;
        for (i in this) if (this[i].getDepth()>=1 && this[i]._parent === this)
 return this[i].getDepth()+1
 return 1;
}

loader = _root._newMovie('ldr');
loader.tmc = _root._newMovie('myMC');
loader.tmc.loadMovie('dsfsdfsdf')
loader.onEnterFrame = function ()
{
 var l =  this.tmc.getBytesLoaded();
 var t = this.tmc.getBytesTotal();
 trace(l+" / "+t );
 if (l==t) this.removeMovieClip()
}

вот тебе идея, можеш ее помучать :)
не проверял, но вроде должно работать...

З.Ы. сорри за прототипы, но мне легче их впейстить чем писать без них, я к ним оч. привык... >;]

[+] 09.06.2003 23:09

to Pietrovich:

может объяснишь ламеру свой код плиз, а?

Pietrovich 10.06.2003 10:08

2 [+]

оки, попробую.

1. методы вписанные в тип.prototype наследуютя всеми объектами этого типа.

2. getTop - метод который определяет первую свободную глубину в клипе для которого вызывается. у IV'а на http://www.layer51.com/proto/d.aspx?f=834 выложен несколько другой метод, вроде пооптимальнеее, но из-за проверки typeof он не учитывал textfield'ы... хотя может уже и пофиксено.
в общем мой метод не фонтан, но вроде работает. просто перелопачивает кишки клипа(себя) и найдя первый объект с глубиной >0 и возвращает его_глубину+1 (так как for..in перебирает сверху-вниз).
если ничего не находит то просто 1. т.е. следующую глубину, которая свободна....
this[i]._parent === this нужна для того чтобы проверить точно ли найденный клип лежит внутри клипа, а не является ссылкой на какой-то внешний клип.

3. _newMovie - по сути ремикс createEmptyMovieClip, просто писать удобнее, не нужно высчитывать свободную глубину+ в отличие от стандартного возвращает ссылку на созданный мувик.

hint: для полной ясности, в них this это собственно сам объект,для которого был вызван метод .

теперь как работает загрузчик (конкретно в данном случае).

//loader = _root._newMovie('ldr');
создаю в _root'е клип ldr и ссылку на него loader. ИМХО удобнее чем писать _root.ldr или _root['ldr'].

//loader.tmc = _root._newMovie('myMC');
в лоадере создаю ссылку tmc на созданный пустой клип myMC (в принципе на любой клип в который будем грузить мувик, просто мне куда-то грузить надо, вот и пришлось для примера контейнер создать).

//loader.tmc.loadMovie('dsfsdfsdf')
начинаю грузить. почему через ссылки? ну мне так писать короче было ;)

//loader.onEnterFrame = ...
прикручиваем прелоадеру обработчик котороый следит за соотношением уже / всего у this.tmc, который по совместительству == _root.myMC.
если уже == всего удалаяем собственный onEntrFrame, т.к. следить то больше не за чем...

собсно все...

SerNet 14.06.2003 15:02

to DUDE&Petrovish
 
файлом можете выложить, проверить как работает??!!
у меня что то, по ним не равномерное распределение загрузки...

Pietrovich 14.06.2003 15:29

1. т.е. "неравномерное рапределение загрузки" ?

2. перечитал я твой первый вопрос, и чето не понял... тебе что, нужно определять насколько процентов загрузилась та или иная часть загружаемого клипа?


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

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