Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Прелоадер (http://www.flasher.ru/forum/showthread.php?t=97379)

mymyboy 20.06.2007 11:32

Прелоадер
 
Никак не могу понять, что я делаю не так. Создаю банально прелоадер, а он не работает. Точнее работает, переходит к основной сцене, но количество загруженного не показывает. Хэлп плиз.
Код:

onClipEvent(enterFrame) {
        loaded = _root.getBytesLoaded();
        percent = int(loaded/total*100);
        text = persent + "%";
        this.gotoAndPlay(persent);
        if (loaded==total) {
                _root.gotoAndPlay(2);
        }
}
onClipEvent(load) {
        total = _root.getBytesTotal();
}

Это скрипт на мувике, который и является 100 кадровым прелоадером.

Tardos Mors 20.06.2007 11:41

Код:

_root.onEnterFrame = function()
{
  loaded = _root.getBytesLoaded();
  total = _root.getBytesTotal();
  percent = Math.floor(loaded/total*100);
  /*Сюда вставляешь путь к текстовому полю*/.text = percent + "%";
  if (loaded>=total)
  {
    _root.gotoAndPlay(2);
  }
}

Пишешь в кадре.

divinus 20.06.2007 11:57

если все же привязывать код к клипу (как вы сделали) то лучше писать так:
Код:

onClipEvent (load) {
        total = _root.getBytesTotal();
}
onClipEvent (enterFrame) {
        loaded = _root.getBytesLoaded();
        percent = int( loaded / total * 100);
        text = "Loaded " + percent + "%";
        gotoAndStop(percent);
        if (loaded == total) {
                _root.gotoAndStop(2);
        }
}

естественно при условии что на этом кадре стоит stop()
но лучше не привязывать код к клипам... во-первых редактировать такую флешку людям не писавшим ее - очень сложно, во вторых, на сколько я знаю, от такой возможности Adobe вообще отказались...

Tardos Mors, какой смысл каждый раз считывать _root.getBytesTotal()?
я конечно понимаю, что это "всего лишь флешка" но про хоть какую нибудь оптимизацию тоже лучше не забывать... :)

mymyboy 20.06.2007 12:15

Да чета нефига не работает :(

Ура, у меня получилось сделать... код такой:
Код:

onClipEvent (enterFrame) {
        loaded = _root.getBytesLoaded();
        percent = int( loaded / total * 100);
        gotoAndStop(percent);
        if (loaded == total) {
                _root.gotoAndPlay(3);
        }
}
onClipEvent (load) {
        total = _root.getBytesTotal();
}

При этом коде можно делать какие хочешь прелоадеры получается... Достаточно создать анимацию на 100 кадров мувиклипа и она будет изменяться с каждым новым загруженным процентом.

divinus 20.06.2007 13:32

mymyboy, а укажите разницу между моим примером и тем "как работает"? :)

mymyboy 20.06.2007 13:38

Не знаю, но с твоим вариантом у меня не работало.

Riin 20.06.2007 22:07

вот она вся разница
было
Код:

_root.gotoAndStop(2);
стало
Код:

_root.gotoAndPlay(3);
:)


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

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