Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Loader Listeners и не только (http://www.flasher.ru/forum/showthread.php?t=118495)

MrNobody 25.11.2008 16:36

Loader Listeners и не только
 
Код AS3:

private function loadBanner() {
 
            var ldr:Loader = new Loader();
            ldr.contentLoaderInfo.addEventListener(Event.INIT, loadInit);
                if(curNews == 0){
                if(bannerfirstload == 0){
                    bannerfirstload = 1;
                    }
                else{
                    if(baner.parent != null) {
                baner.parent.removeChild(baner);;
                        bannerfirstload = 1;
                    }
                }
                var url:String = "promo6.swf";
                var urlReq:URLRequest = new URLRequest(url);
                ldr.load(urlReq);
                var preloade_mc:MovieClip = new preloader();
                preloade_mc.x = 330;
                preloade_mc.y = 170;
                preloade_mc.name = 'preloader';
                addChild(preloade_mc);
                lastnews = 0;
            }
            if(curNews == 1){
                if (baner.parent != null) {
                baner.parent.removeChild(baner);;
                }
 
                var url:String = "promo5.swf";
                var urlReq:URLRequest = new URLRequest(url);
                ldr.load(urlReq);
                var preloade_mc:MovieClip = new preloader();
                preloade_mc.x = 330;
                preloade_mc.y = 170;
                preloade_mc.name = 'preloader';
                addChild(preloade_mc);
                lastnews = 1;
                //loadBanner()
            }
            if(curNews == 2){
                if (baner.parent != null) {
                baner.parent.removeChild(baner);;
                }
                var url:String = "promo3.swf";
                var urlReq:URLRequest = new URLRequest(url);
                ldr.load(urlReq);
                var preloade_mc:MovieClip = new preloader();
                preloade_mc.x = 330;
                preloade_mc.y = 170;
                preloade_mc.name = 'preloader';
                addChild(preloade_mc);
                lastnews = 2;
            }
                else{
                if (baner.parent != null) {
                baner.parent.removeChild(baner);;
                }
                var url:String = "promo2.swf";
                var urlReq:URLRequest = new URLRequest(url);
                ldr.load(urlReq);
                var preloade_mc:MovieClip = new preloader();
                preloade_mc.x = 330;
                preloade_mc.y = 170;
                preloade_mc.name = 'preloader';
                addChild(preloade_mc);
 
            }
            lastnews = 5;
            }
            if(curNews == 6){
                trace(lastnews);
                if(lastnews == 3 || lastnews == 4 || lastnews == 5 || lastnews == 6){
                }
 
            else{
                if (baner.parent != null) {
                baner.parent.removeChild(baner);;
                }
                var url:String = "promo2.swf";
                var urlReq:URLRequest = new URLRequest(url);
                ldr.load(urlReq);
                var preloade_mc:MovieClip = new preloader();
                preloade_mc.x = 330;
                preloade_mc.y = 170;
                preloade_mc.name = 'preloader';
                addChild(preloade_mc);
 
            }
            lastnews = 6;
            }
            if(curNews == 7){
                if (baner.parent != null) {
                baner.parent.removeChild(baner);;
                }
                var url:String = "promo.swf";
                var urlReq:URLRequest = new URLRequest(url);
                ldr.load(urlReq);
                var preloade_mc:MovieClip = new preloader();
                preloade_mc.x = 330;
                preloade_mc.y = 170;
                preloade_mc.name = 'preloader';
                addChild(preloade_mc);
                lastnews = 7;
            }
        } // End of Function

Где curNews - номер текущей новости.

Код AS3:

private function loadInit(event:Event):void {
            var loader:Loader = Loader(event.target.loader);
            var info:LoaderInfo = LoaderInfo(loader.contentLoaderInfo);
            baner = info.content as MovieClip;
            this.addChild(baner);
            var preloader:MovieClip = getChildByName('preloader') as MovieClip;
            removeChild(preloader);
        } // End of Function

В кратце:
Функция грузит муви-клип, в зависимости от номера текущей новости.

Проблема:
Мувиклипв весят по пол-метра, там всякая красота... Не успевают подгрузиться, потом накладываються друг на друга, при срабатывании loadInit, т.к. чайлд не ремувиться. И еще достаточного косяков... На первый взгляд все довольно громоздко, но

Суть вопроса:
Подскажите может что нибудь другое послушать надо?
Или киньте код, где подобная штука реализована.

Смысл всего этого:
Хочу сделать страничку, где баннер будет показываться в зависимости от текущей новости, а если он еще не подгрузился достаточно, то отображаеться предидущий. При рассмотрении вопроса прошу вас обратить внимание на размеры баннеров 500кб - 1000 кб. И принять во внимание, что их может быть и 100 и 200 и 100000000000.

Вот, пока писал эту лабуду, вроде и решение оформилось. Счас
попробую и выложу резальт если получиться. Жду ваших ответов.

:mad:


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

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