Форум 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)
-   -   Загрузка с 50% (http://www.flasher.ru/forum/showthread.php?t=135460)

Dezar 24.01.2010 02:06

Загрузка с 50%
 
доброй ночи.
возникла проблема с загрузкой.
имеется файл весом в 7 мегабайт.
имеется мувик с 2 кадрами
в первом кадре код

Код AS1/AS2:

bl = _parent.getBytesLoaded();
bt = _parent.getBytesTotal();
_xscale = Math.round(100 * (bl / bt));
_parent.txt = _xscale+" %";
if (bt == bl)
{
  stop();
_parent.play();
 
}

проблема в том, что сначала загрузки просто черный экран.потом появляется загрузчик с цифрой 70 (70% загрузил) доходит до 100% и переключает кадр.
как сделать так, чтобы загрузка шла с 1%, а не с 70%
и почему вообще такая штука происходит?

mr_pol 24.01.2010 02:19

попробуйте так
Код AS1/AS2:

_root.onEnterFrame = function() {
        l = _root.getBytesLoaded();
        t = _root.getBytesTotal();
        if (l>=t) {
                play();
        } else {
                stop();
                _parent.txt = Math.round(l/t*100)+"%";
        }
};


Dezar 24.01.2010 02:28

ничего не изменилось.

по сути код один и тот же.

mooncar 24.01.2010 02:29

У вас скорее всего экспорт объектов из библиотеки организован в 1-й кадр (для аттача, например).
Нужно сделать экспорт во второй кадр.
На форуме тема обсуждалась многократно.

Dezar 24.01.2010 02:36

НЕт.в этои флэшке аттачов нет вообще.
все на сцене.
из библиотеки ничего не берется

mooncar 24.01.2010 02:42

1. Publish Settings -> Flash -> Generate Size Report галочку поставьте и убедитесь, что первый кадр кроме кода ничего не несет.
2. Попробуйте предзагрузчик, который я вот тут привел во втором посте.
Там мувик для прогресса только нужен простенький.
А вообще, код, который вы привели, отрабатывает только один проход. Проверка же должна постоянно производится.
И stop() я у вас тоже не вижу.
К тому же, зачем вам play(), если у вас только два кадра. gotoAndStop().
В общем, попробуйте предзагрузчик, на который я указал.

Dezar 24.01.2010 02:57

дело в том, что там 2 кадра.анимация играет сама по себе.но суть не меняется если я ставлю onEnterFrame

Добавлено через 33 секунды
Код AS1/AS2:

main.swf Movie Report
----------------------
 
Frame #    Frame Bytes    Total Bytes    Scene
-------    -----------    -----------    ----------------
      1        1333384        1333384    Scene 1 (AS 2.0 Classes Export Frame)
      2        1744309        3077693   
 
Scene                        Shape Bytes    Text Bytes    ActionScript Bytes
-------------------------    -----------    ----------    ------------------
Scene 1                                0            0                  3078
 
Symbol                      Shape Bytes    Text Bytes    ActionScript Bytes
-------------------------    -----------    ----------    ------------------

я сделал как вы сказали.вот что мне выдало.

mooncar 24.01.2010 03:07

Не похоже, что у вас в первом кадре кроме кода ничего нет. Вы же видите - больше мегабайта что-то.

Если хотите, выложите где-нибудь исходник - можно глянуть.

Стойте-ка, опишите еще раз подробно, как у вас что организовано. Что на основном таймлайне, о каком мувике идет речь и где он находится.
Код где находится - на первом кадре чего.
Не очень понятно.
Сдается мне, что у вас криво структура организована.

Dezar 24.01.2010 03:13

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

mooncar 24.01.2010 03:22

Жуть. Так не делается. Рисунок у вас и весит, пока он не загрузился, код бессмысленен, так как сперва плеер должен загрузить всю графику, потом он что-то покажет, а покажет он уже сосчитанные ваши 50 или 70%.
Предзагрузчик должен находится в первом кадре основного таймлайна - там только его код и какая-то минимальная индикация. Переход к кадру с основными данными - только по загрузке всего.
"Бегать" между кадрами не нужно. Сделайте по-человечески, через setInterval или onEnterFrame.
Могу сейчас выложить шаблончик с предзагрузчиком, если хотите.


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

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