![]() |
addChild у Loader
Здравствуйте!
Уже долго бьюсь над такой проблемой. Object, состоящий из семи Loader, отказывается использовать addChild, хотя файл вроде бы загружен, так как событие COMPLETE при этом срабатывает. Если в это же место поставить обычный одиночный Loader, то все работает. Вот сам код: Код AS3:
|
ничего не получилось =( грузит твой пример все 7 картинок и всё тут!
|
Re:
Сейчас напишу поподробней. Вот пустой файл только с этим кодом:
Код AS3:
|
Вы пытаетесь отобразить картинки не дождавшись загрузки.
Попробуйте так: Код AS3:
|
Код AS3:
|
и почему это нельзя добавлять лоадер до загрузки? я не говорю про корректность этого действия. я про ошибку — спокойно себе аттачится и уже на экране ждет загрузки.
P.S. еще раз повторюсь — ошибку воспроизвести не удалось. вставил тупо первый код, закомментировал лиснер и подставил URL картинки наугад. |
Спасибо
Жень Шень, спасибо, в таком виде все работает:
Код AS3:
Нельзя ли как-то передавать в imgLoaded номер обьекта? Код AS3:
Добавлено через 2 часа 55 минут Благодаря вашим мудрым советам отображение работает, но еще один вопрос. Как мне так обработать нажатие на это самое отобразившееся дитя, чтобы нажатое менялось контентом с нулевым? Если просто Код AS3:
|
А с каких пор у Loader работает addChild?
|
это по-испански. "аддчайлд и лоадер" по-нашенски :D
|
А по существу вопроса?
|
а по существу — диво дивное!
если не затруднит, сделай отдельную флэшку, в которой только код, допустим, из первого примера, и выложи (только не забудь или URL вместо локального пути, или картинку тоже в архив сложить в ту же папочку в идеале... ну для чистоты эксперимента). бо я уже говорил выше — твой код работает. |
Цитата:
|
Там пониже почитайте. Отображение на экране худо-бедно работает, мне сейчас нужна обработка нажатий мышью по детям.
|
У вас помещаются изображения на сцену, а они не интерактивны.
Может это поможет: Код AS3:
|
Вот этот вот index, насколько я понимаю, можно задавать addChildAt? Тогда бы можно было в нем хранить номер картинки.
Добавлено через 34 минуты А может, проще обработать нажатие по координатам? Есть такая возможность? |
Цитата:
Код AS3:
|
Объясните мне, пожалуйста, что СИЕ значит:
TypeError: Error #1034: Type Coercion failed: cannot convert "file:///f:/SITE/IMAGES/galery/3_3_7.jpg" to flash.net.URLRequest. at Gallery_fla::MainTimeline/chang() и какого он не считает эту строку годной? |
Это значит, что [object String] невозможно сконвертировать в [object flash.net.URLRequest].
Наверно, грузите как loader.load('file:///...'); |
Код AS3:
|
Код AS3:
|
Ага, new надо. Спасибо.
Добавлено через 23 минуты Говорит теперь ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller. at flash.display::Loader/flash.display:Loader::_load() at flash.display::Loader/load() at Gallery_fla::MainTimeline/chang() Код AS3:
|
это говорит removeChild.
|
А вот и нет, removeChild срабатывает оба раза. Проверено комментированием, дебагом, и визуально в самой флешке.
Мож кто знает, как проще поменять местами содержимое, не меняя размеров и положения? Еще, в AS в принципе есть целочисленное деление или округление в меньшую сторону? |
Тьфу, я дурак. В стеке же даже видно. Ограничите мне доступ к алкоголю.
|
Так это ж, вы не дожидаетесь окончания загрузки и сразу же добавляете в отображение. Думаю, копать надо в этом направлении. Только ошибка какая-то странная - ругается даже не на null в добавлении
|
[Алкоголизм]
А разве content у Loader`а может поменяться, в смысле что одним Loader`ом можно грузить несколько картинок? [/Алкоголизм] |
l[0] и l[t] - это два разных лоадера, нет?
|
Всегда разные, там выше ограничено.
А по поводу деления? |
Код AS3:
|
Это уже давно в забвении, щас там только remove, который работает. Добавление в функции окончания загрузки.
Но ошибку 2025 по прежнему выдает. |
Так, открываем хелп и что мы видим?
Чтобы удалить загруженный экранный объект, необходимо удалить объект Loader из дочернего массива родительского объекта DisplayObjectContainer. Добавлено через 4 минуты То есть, я так понимаю, что нужно правильно удалять содержимое и заново пересоздавать лоадер. |
Сделал, нет теперь ошибок, только вот и загружаться он не хочет. Хотя стоит правильный листенер, не запускается связанная с ним функция.
Код AS3:
|
Сначала загружаем, затем присоединяем слушатель. Ну и советик, чтобы не запутаться, лучше сгруппировать код одного лоадера отдельно от второго.
|
Что вы мне тут советуете)
Детская ошибка ведь. Я-то ладно, AS неделю знаю, но вы-то) Листенер к contentLoaderInfo цепляется. |
Хех, каюсь, не заметил. А может и я АС3 знаю неделю?) Ну да, невнимательность - порок.
|
Фууух. Это было... неописуемо. По заявкам могу выслать этот памятник индусскому коду. Зато работает! Причем неплохо, и защищен от дураков средней руки.
Добавлено через 25 часов 25 минут Adobe Flash невообразимо коварен, и когда я уже думал, что все, он опять подложил мне этакого поросеночка. Суть в том, что запущенный из самого CS3 проект работает и грузит картинки, а вставленный в html - нет. Swf из проекта и экспортнутый идентичны, другой swf со сходными методами работает, будучи вставленный в такой же точно html. Кто-нибудь сталкивался? |
Чуточку не туда вопрос задал...
Хотя Follower сталкивался с подобным. Может сможете объяснить. Как передать урл картинки, которая должна загружаться после клика по клипу превьюшке? И что нужно для того, чтоб картинки не грузились хаотично(грузятся почемуто в произвольном порядке), а именно 00, 01, 02 ит.д. (то бишь по порядку)? В общем простенький код: Код AS3:
|
Какие-то картинки весят меньше - они быстрее и грузятся. Здесь нужно переделать логику кода. А именно сделать примерно так:
Грузим первую картинку, ловим событие Event.COMPLETE, словили, загрузили вторую картинку, ловим событие...и так далее. Цитата:
|
Да вот именнонад этим я и бьюсь. Как всё это дело проследить и организовать?
Цитата:
|
Я бы сделал так, ничего другого в голову пока не приходит:
Код AS3:
|
| Часовой пояс GMT +4, время: 06:11. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.