Форум 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)
-   -   непослушный duplicateMovieClip (http://www.flasher.ru/forum/showthread.php?t=80859)

Whim 07.06.2006 15:29

непослушный duplicateMovieClip
 
Ситуация такая:
Есть мувик CatalogPreview, а в нем smallbox. Есть функция загрузки каталога картинок, которая для выбранного списка файлов с картинками выполняет следующие действия:
  1. чистит CatalogPreview от предыдущей загрузки;
  2. первый элемент списка загружает в smallbox;
  3. для последующих элементов делает smallbox.duplicateMovieClip и загружает изображение в созданную копию smallbox.
Тестирую на трех каталогах: каталог№1-3 картинки,каталог№2-1 картинка,каталог№3-4 картинки.
Если начать с каталога№3, то все работает как надо: сначала появляются все 4 картинки, а затем количество smallbox'ов меняется в зависимости от выбранного каталога. Но если начать, например, с
каталога№2, то сначала появится одна картинка, а затем из выбранного каталога будет вместо этой загружаться только первый элемент, т.е. smallbox'ы не хотят дублироваться в большем количестве. В чем загвоздка?
Код:

//****  ф-ция загрузки нового каталога *****
function LoadCatalog(catName){
        ind=1;
        sumLoad = 0;
        sumTotal = 0;
        for (i=0;i<ImageList.length;i++){
                if (Imagelist[i].catalog==catName){
                        LoadPreview(Imagelist[i].file);
                }
        }
        _root.CatalogPreview.onEnterFrame = function() {
                sumLoad = this.smallbox.getBytesLoaded();
                sumTotal = this.smallbox.getBytesTotal();
                for (j=2;j<ind;j++){
                        sumLoad += this["smallbox"+j].getBytesLoaded();
                        sumTotal += this["smallbox"+j].getBytesTotal();
                }
                if (sumTotal>0 && sumLoad>=sumTotal){
                        delete this.onEnterFrame;
                        ImageSmallGo(this.smallbox);
                        for (j=2;j<ind;j++){
                                ImageSmallGo(this["smallbox"+j]);
                        }
                }
        };
}
//****  ф-ция загрузки Preview  ***************************
function LoadPreview(im){
        bx = -139.1;
        by = -30.7;
        trace("ind="+ind);
        if (ind>1){
_root.CatalogPreview.smallbox.duplicateMovieClip("smallbox"+ind,ind,{_x:bx+60*(ind-1)-25,_y:by-25});
                trace("create "+"smallbox"+ind+", x:"+_root.CatalogPreview["smallbox"+ind]._x);
                _root.CatalogPreview["smallbox"+ind].loadMovie(im);
        }
        else{
                with (_root.CatalogPreview.smallbox){
                        _x = bx - 25;
                        _y = by - 25;
                        loadMovie(im);
                }
        }
        ind++;
}
//*****  ф-ция очистки Preview  ****************************
function ClearPreview(){
        delete _root.CatalogPreview.smallbox.onEnterFrame;
        _root.CatalogPreview.smallbox.unload();
        for (j=2;j<ind;j++){
                trace("remove "+"smallbox"+j);
                delete root.CatalogPreview["smallbox"+j].onEnterFrame;
                _root.CatalogPreview["smallbox"+j].unloadMovie();
        }
}

//*************************************************
function changecatalog(){
        if (first_click){
                first_click = false;
                _root.currentcatalog.removeItemAt(0);
        }
        else
        ClearPreview();
        LoadCatalog(_root.currentcatalog.getSelectedItem().label);
       
}


Whim 07.06.2006 18:48

Отвечаю на свой вопрос сама: оказывается duplicateMovieClip не дружит с мувиками, к которым применялся loadMovie(), и unload() не помогает.
В моем случае, видно, придется сразу надублировать "заготовок" в количестве, равном количеству картинок в самом большом каталоге.
Может кто-нибудь все-таки знает лекарство против этого недостатка duplicateMovieClip???


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

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