Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Поясните смысл конструкции Loader (http://www.flasher.ru/forum/showthread.php?t=146547)

in4core 11.11.2010 01:30

Поясните смысл конструкции Loader
 
Такая вот есть задача. Есть мувиклип, в нем контейнер. В контакйнер добавляется Loader. Соотв грузит что то, допустим картинку. По событию complete мы знаем ширину и высоту. Но до события не знаем, соотв.
И так. как теперь обратится к тому самому мувиклипу, и настроить координаты контейнера в зависимости от загруженного контента ?

Код AS3:

for (var i=0; i< xml_a.children().length(); i++)
                        {
                                var b = new btnS(); // мувиклип
                                b.x = i*(b.width+2);
                                sp.addChild(b);
                                lod = new Loader();
                                lod.load(new URLRequest('/assets/'+xml_a.but[i].@image));
                                b.loader.addChild(lod); // loader это контейнер
 
                                lod.contentLoaderInfo.addEventListener(Event.COMPLETE,comp);
 
// И тут или не тут, надо как то у каждого b.loader  изменить координты в зависимости от загруженного содердимого
}

На данный момент вот такой тест, но как справится с проблемой пока не доходит до меня...
Если собрать в массив все клипы... толку невижу, все равно что дальше то...
Если собрать в двумерный массив клипы и лоадеры... все равно неясно как к этому вытянуть Info контента в итоге....
Вообщем тема наврное простая просто к ночи голова не варит... подскажите вообщем

Да и еще вопрос в догонку, досих пор не понял, как при загрузке чего либо в цикле узнать момент КОГДА ВСЕ лоадеры прогрузили чего либо. А не отдлеьно получать евент на каждый

TanaTiX 11.11.2010 01:36

Могу предложить грузить в байтаррэй, парсить начало файла и вычленять оттуда размеры. Вроде где-то лежали подобные реализации.

Psycho Tiger 11.11.2010 01:48

http://www.flasher.ru/forum/blog.php?b=237

dimarik 11.11.2010 02:08

А может deferred, deferred and once more... deferred?!
Вы ради приличия посмотрите как делаются AS (G)UI фреймворки. Начните со всеми любимого Flex framework.

З.Ы. Традиционно. "И так" => в Вашем контексте должно быть 'итак'. Не удержался.
Итак, в одном департаменте служил один человек… Н. В. Гоголь, «Шинель», 1842 г.

in4core 11.11.2010 02:12

Спасибо. А то такое deffered ?

Добавлено через 2 минуты
И еще если не сложно ответьте на посл вопрос насчет КАК узнать про ЗАГРУЗКУ всех лоадеров

dimarik 11.11.2010 02:15

Упс. Копипаста подвела. "Deferred", конечно. Прошу прощения ).

Буквально "отложенный". Все откладываем на "потом". Инстанцирование, например. А может добавление лоадера или его content в дисплейлист, как в данной задаче.

Добавлено через 8 часов 25 минут
Цитата:

И еще если не сложно ответьте на посл вопрос насчет КАК узнать про ЗАГРУЗКУ всех лоадеров
Хм, вроде просто. Собирать события окончания загрузки от каждого лоадера. Когда количество лоадеров и количество событий совпадут - значит все лоадеры загрузились (или отвалились с ошибкой).

Используйте какой-нибудь готовый масс-загрузчик типа BulkLoader. Или просто гляньте его исходники, для саморазвития.


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

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