Форум 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)
-   -   preload для презентации (http://www.flasher.ru/forum/showthread.php?t=118401)

ZergMaster 22.11.2008 19:48

preload для презентации
 
Товарищи, помогите справиться с проблемой пожалуйста.

Я делаю прелоадер для презентации, состоящей из шести по разному сменяющих друг друга картинок. Намучился с ним уже. Ни внешний, ни внутренний не срабатывает. То есть, он ждет, когда bytesLoaded=bytesTotal, и запускается только после этого, но проигрывается все равно урывками и короче неправильно.
Вы не подскажете, в чем может быть проблема? Может быть дело в том, что те шесть картинок не в библиотеке презентации, а подгружаются динамически из соседней папки?

chingachgoog 22.11.2008 23:49

Средствами одного флеша тут не справиться: он "замораживается" при загрузке с хард-диска и анимацию прогресс-бара не видно.

http://www.flasher.ru/forum/showpost...0&postcount=19

ZergMaster 24.11.2008 00:30

то бишь, как я понял, это неосуществимо?... хм.
Я вот пробую заморочиться так, чтобы делать загрузку всех подгружаемых картинок одновременно с загрузкой самого мувика, чтобы их btotal и bload складывались,образуя один прогресс бар...
Проект надо доделывать к понедельнику.... Так что ещё отпишусь. Глядишь что и выйдет.

Добавлено через 18 часов 44 минуты
Между тем либо меня глючит, либо я таки нашел решение. При проверке, по крайней мере, все работает.
Решить эту задачу получилось при помощи внутреннего прелоадера. Поскольку проблема была в том, что все картинки загружались отдельно, поэтому получалась неразбериха в кадрах и фильм шел рывками, я решил забить все картинки (6 штук) в один loader при помощи MovieClipLoader. Так как они загружаются параллельно, а не поочередно, то даже не пришлось складывать все их byteloader'ы и total'ы. То есть можно было сделать так:
Код AS1/AS2:

(pig1.bytesLoaded/pig1.bytesTotal+pig2.bytesLoaded/pig2.bytesTotal+pig3.bytesLoaded/pig3.bytesTotal+pig4.bytesLoaded/pig4.bytesTotal)/4

чтобы найти средний процент загрузки, который выводился бы в textField и являлся _xscale loading-поля.
Вообщем решение пришло неожиданно и как всегда работает непонятно от чего. Но оно проще, чем описанное. Вот:
Код AS1/AS2:

var loader:MovieClipLoader=new MovieClipLoader();
var listener:Object={}
loader.addListener(listener);
 
loader.loadClip("img/img1.jpg", pig1);
loader.loadClip("img/img2.jpg", pig2);
loader.loadClip("img/img3.jpg", pig3);
loader.loadClip("img/img4.jpg", pig4);
loader.loadClip("img/img5.jpg", pig5);
loader.loadClip("img/img6.jpg", pig6);
 
listener.onLoadStart=function():Void {
        _root.createTextField("preloader", 10234, 250,100,40,18);
        preloader.border = true;
        preloader.text ="0%";
        _root.stop();
        };
listener.onLoadProgress=function(clip:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
        preloader.text= Math.round(bytesLoaded/bytesTotal*100)+"%";
        var persent:Number = Math.round(bytesLoaded/bytesTotal*100)
        poloska._xscale= persent;
        };
listener.onLoadComplete=function():Void {
        _root.gotoAndPlay(2);
        preloader.removeTextField();
        poloska._visible=false;
        }

pig1,2,3,4,5,6 - это пустые клипы контейнеры, в которые загружаются картинки. Все эти клипы есть во флэшке уже с первого кадра, просто в невидимом состоянии, чтобы флэшь начинала подгружать их картинки сразу при загрузке первого кадра. Иначе косяк.
preloader- поле, которое отображает проценты циферками, а а клип poloska - синий прямоугольничек, _xscale которой равно процентам.
при начале загрузки картинок клип останавливает проигрывание. При завершении загрузки - идет и проигрывает клип со второго кадра.) А заодно прячет прогресс-бар.
Вообщем вроде как все правильно.


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

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