Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблемы с прелоадером в Fierfox (http://www.flasher.ru/forum/showthread.php?t=136880)

Adrior 27.02.2010 22:09

Проблемы с прелоадером в Fierfox
 
Наткнулся на забавную проблему с работой прелоадера в FireFox (проблема проявляется только в нём).

Если при загрузке страницы флешка находится в области видимости, то всё работает хорошо. Но если прокрутить страницу так, чтобы флешки не стало видно и обновить страницу — прелоадер перестаёт работать.

Пример здесь: http://adrior.ru/flash/preloader-problem/

На страницу вставлены две одинаковые флешки. Но в Фаерфоксе первая грузится хорошо, а вторая — дико глючит. Если же перемотать страницу вниз и обновить — ситуация изменится на противоположную.

Код прилоадера:
Код AS3:

package{
        import flash.events.ProgressEvent;
        import flash.display.MovieClip;
        import flash.events.Event;
 
        public class SimpleLoader extends MovieClip{
                public function SimpleLoader()
                {
                        // На обработку события загрузки вешается изменение размеров прогрессбара
                        this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, preloaderStatistics);
                        // По окончанию загрузки переходим ко второму кадру и скрываем белый зановес
                        this.loaderInfo.addEventListener(Event.COMPLETE, function (event:Event) {
                                gotoAndStop(2); fadeOut(curtain);
                        });
                }
                private function preloaderStatistics(event:ProgressEvent)
                {
                        var percent = Math.round(event.bytesLoaded / event.bytesTotal * 100);
                        var newWidth = Math.round(preloader.width*percent/100);
                        if (newWidth > preloader.width) newWidth = preloader.width;
                        progress.width = newWidth;
                        percentInfo.text = percent + '%';
                }
 
 
                // Далее чисто декоративные функции
                internal function fadeOut(obj:*){...}
                private function hideObject(event:Event):void {...}
        }
}

Исходники доступны по адресам:
http://adrior.ru/flash/preloader-pro...impleLoader.as
http://adrior.ru/flash/preloader-problem/loadDemo.fla

Сталкивался ли кто-нибудь с такой проблемой?

Заранее спасибо за помощь!

P.S. Возможно, я не умею пользоваться поиском. Но такой темы на форуме мне найти не удалось. Хотя и просмотрел два десятка тем про прелоадеры.

bublic_bicubic 02.03.2010 14:02

Код AS3:

// ...
 
public function SimpleLoader() {
        stop();
        if (loaderInfo.bytesLoaded == loaderInfo.bytesTotal) {
                onLoadComplete();
        } else {
                this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, preloaderStatistics);
                this.loaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
        }
}
 
private function onLoadComplete(e:Event = null):void {
        gotoAndStop(2);
        fadeOut(curtain);
}
 
//...



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

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