![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2010
Сообщений: 34
|
Здравствуйте!
Уже долго бьюсь над такой проблемой. Object, состоящий из семи Loader, отказывается использовать addChild, хотя файл вроде бы загружен, так как событие COMPLETE при этом срабатывает. Если в это же место поставить обычный одиночный Loader, то все работает. Вот сам код: |
|
|||||
|
Lorem ipsum
|
ничего не получилось =( грузит твой пример все 7 картинок и всё тут!
__________________
Поймай яблоко 2! |
|
|||||
|
Регистрация: May 2010
Сообщений: 34
|
Сейчас напишу поподробней. Вот пустой файл только с этим кодом:
import flash.display.Loader; var i:int; var Url:URLRequest; var ldr:Object = new Object; for (i=0; i<7; i++) { ldr[i]=new Loader(); ldr[i].height=240; ldr[i].width=180; ldr[i].x=180*i; } ldr[6].contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded); сompl(); function сompl():void { for (i=0; i<7; i++) { Url = new URLRequest("file:///F:/SITE/images/galery/3_3_"+String(i+1)+".jpg"); ldr[i].load(Url); addChild(ldr[i]); } } function imgLoaded(event:Event):void { trace("Complete!"); } |
|
|||||
|
Вы пытаетесь отобразить картинки не дождавшись загрузки.
Попробуйте так: import flash.display.Loader; var i:int; var Url:URLRequest; var ldr:Object = new Object; for (i=0; i<3; i++) { ldr[i]=new Loader(); ldr[i].height=240; ldr[i].width=180; ldr[i].x=180*i; ldr[i].contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded); } сompl(); function сompl():void { for (i=0; i<3; i++) { Url = new URLRequest(String(i+1)+".jpg"); ldr[i].load(Url); } } function imgLoaded(e:Event):void { addChild(e.target.content); trace("Complete!"); } |
|
|||||
|
Lorem ipsum
|
и почему это нельзя добавлять лоадер до загрузки? я не говорю про корректность этого действия. я про ошибку — спокойно себе аттачится и уже на экране ждет загрузки.
P.S. еще раз повторюсь — ошибку воспроизвести не удалось. вставил тупо первый код, закомментировал лиснер и подставил URL картинки наугад.
__________________
Поймай яблоко 2! |
|
|||||
|
Регистрация: May 2010
Сообщений: 34
|
Жень Шень, спасибо, в таком виде все работает:
import flash.display.Loader; var i,j:int; var Url:URLRequest; var ldr:Object = new Object; for (i=0; i<7; i++) { ldr[i]=new Loader(); ldr[i].contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded); } Compl(); j=0; function Compl():void { for (i=0; i<7; i++) { Url = new URLRequest("file:///F:/SITE/images/galery/3_3_"+String(i+1)+".jpg"); ldr[i].load(Url); } } function imgLoaded(e:Event):void { e.target.content.height=240; e.target.content.width=180; e.target.content.x=j*180; j++; addChild(e.target.content); } Нельзя ли как-то передавать в imgLoaded номер обьекта? Вот так AS3 плодит индусов( Добавлено через 2 часа 55 минут Благодаря вашим мудрым советам отображение работает, но еще один вопрос. Как мне так обработать нажатие на это самое отобразившееся дитя, чтобы нажатое менялось контентом с нулевым? Если просто if (z!=0) { l[z].contentLoaderInfo.addEventListener(MouseEvent.CLICK, chang); } ... function chang(e:MouseEvent):void { var temp:Loader=new Loader; var z:int; z=1; removeChild(l[0].content); removeChild(l[z].content); temp=l[0]; l[0]=l[z]; l[z]=temp; addChild(l[0].content); addChild(l[z].content); } Последний раз редактировалось Follower; 19.05.2010 в 14:03. |
|
|||||
|
Lorem ipsum
|
это по-испански. "аддчайлд и лоадер" по-нашенски
![]()
__________________
Поймай яблоко 2! |
|
|||||
|
Регистрация: May 2010
Сообщений: 34
|
А по существу вопроса?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 01:57. |
|
|
« Предыдущая тема | Следующая тема » |
|
|