Форум 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)
-   -   как используя LoadClip последовательно загрузить 4 клипа (http://www.flasher.ru/forum/showthread.php?t=114091)

solo19770701 18.07.2008 00:09

как используя LoadClip последовательно загрузить 4 клипа
 
Всем доброго времени суток. Вопрос, как красиво написадь код, для loadClip для 4х клипов. Я это сделал так
Код:

var mclListener:Object = new Object();

mclListener.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number)
{
        var percentDone:Number = bytesLoaded / bytesTotal * 100;
        progressMovie.percentDoneLabel.text = String(Math.ceil(percentDone))+ " %";
};

var image_mcl:MovieClipLoader = new MovieClipLoader();

mclListener.onLoadComplete = function(target_mc:MovieClip)
{
        mclListener.onLoadComplete = function(target_mc:MovieClip)
        {
                mclListener.onLoadComplete = function(target_mc:MovieClip)
                {
                        mclListener.onLoadComplete = function(target_mc:MovieClip)
                                {
                                        gotoAndPlay("start");
                                        backMusic.start();
                                };
                        image_mcl.loadClip("slideShowPic/image4.jpg",slideClip04);
                        progressMovie.partitionText.text = "Loading Music";
                        progressMovie.almostDone.text = "Almost Done";
                };
                image_mcl.loadClip("slideShowPic/image3.jpg",slideClip03);
                progressMovie.partitionText.text = "Loading Buttons";
                progressMovie.almostDone.text = "";
        };
        image_mcl.loadClip("slideShowPic/image2.jpg",slideClip02);
        progressMovie.partitionText.text = "Loading Pictures";
        progressMovie.almostDone.text = "";
};
image_mcl.loadClip("slideShowPic/image1.jpg",slideClip01);
progressMovie.partitionText.text = "Initialization";
progressMovie.almostDone.text = "";

image_mcl.addListener(mclListener);

По сути дела я вложил один слушатель в другой, и по мере выполнения onLoadComplete, идет загрузка другова клипа. Но уж больно все это неэстетично смотрится. А как можно это написать красиво?:rolleyes:

crazyone 18.07.2008 12:04

Создать массив, в котором будет храниться информация - куда и откуда загружать каждый клип. При загрузке увеличивать счетчик и загружать следующий клип.

Alex_beginner 18.07.2008 13:35

Вложений: 1
А зачем, позвольте узнать, Вам понадобилось столько вложенных обработчиков onLoadComplete?!
Вот недавно созданный пример последовательной загрузки изображений. Как только разберетесь в коде сможете подстроить его под свои нужды.

джонатан 18.07.2008 14:31

Блин! Я вот тоже самое сейчас делаю, и уже не первый час сижу и думаю как осуществить следующее:

У меня циклически аттатчатся клипы, а в них уже MovieClipLoader тянет картинку. Но мне нужны в отдельном месте маленькие превьюшеычки. Я стал циклически дублировать мувиклипы аттатчившиеся, но тогда перестает работать прелоадер, т.к. имена чтоли одинаковые. Блин, короче сам запутался я в своем коде. Ужас...

iNils 18.07.2008 15:01

Вложений: 1
Пример с учетом возможного отсутствия файла.

solo19770701 18.07.2008 23:42

to lex_beginner: СПАСИБО. Твой код легок для понимания. Его я и использовал, только добавил onLoadProgress.
to iNils: ваш код сложнее для осовения (из-за сокращений), но есть плюс, там есть onLoadError. Спасибо.

Alex_beginner 20.07.2008 10:34

Вложений: 1
Код iNils'a имеет главное преимущество перед моим кодом - отсутсвует onEnterFrame. После недолгих раздумий я пришел к выводу, что мой код тоже можно модифицировать и, разумеется, избавиться от onEnterFrame (см. вложение).


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

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