![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Dec 2011
Сообщений: 15
|
Доброго времени суток.
Есть текстовый документ, например, "Трололо |img+1.png+500+400| " и функция, которая разбивает разбивает эту строку на массив, определяет, где текст, а где будет картинка(и), грузит картинку(и) и добавляет все в groupVector. Нужно, что бы нормально работали imgloader.width & imgloader.height. Для этого, как я понял, нужно добавить слушатель: Но как реализовать это так, что бы сохранить очередность добавления элементов в groupVector? Функция выглядит так: elements = str.split("|"); for (var j:uint = 0; j < elements.length; j++) { var n:uint = Math.round(j / 2 - Math.floor(j / 2)); if (n == 0 && elements[j] != "") { var textElement:TextElement = new TextElement(elements[j], ef); groupVector.push(textElement); } if (n == 1) { str = elements[j]; imagein = str.split("+"); var imgloader:Loader = new Loader(); var request:URLRequest = new URLRequest("media/" + imagein[1]); if (imagein[0] == "img") { imgloader.load(request, null); } else if (imagein[0] == "swf") { var appDomain:ApplicationDomain = new ApplicationDomain(); var context:LoaderContext = new LoaderContext(false, appDomain); imgloader.load(request, context); } var obj:Sprite = new Sprite(); var swidth:Number = imagein[2]; var sheight:Number = imagein[3];; obj.addChild(imgloader); imgloader.x = margin / 2; imgloader.y = margin / 2; obj.graphics.lineStyle(1, 0x000000, 1); obj.graphics.beginFill(0xFFFFFF, 0); obj.graphics.drawRect(0, 0, swidth + margin, sheight + margin); obj.graphics.endFill(); var graphicElement:GraphicElement = new GraphicElement(obj, obj.width, obj.height, ef); groupVector.push(graphicElement); } |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 150
|
Немного не понял вопрос. Если про порядок загрузки, то она во флеше распараллелена, т.е. очередность не гарантируется. А если про порядок расположения в groupVector, то они в примере и так расположены последовательно.
|
|
|||||
|
Регистрация: Dec 2011
Сообщений: 15
|
В примере да. Но мне необходимо что бы использовались loader.width & loader.height.
И при этом сохранить порядок расположения. |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 150
|
Тогда, как вариант, в первом цикле сохранить лоадеры в промежуточный массив, а добавление GraphicElement производить по событию COMPLETE. Соответсвенно интекс лоадера в массиве будет соответсвовать индексу в groupVector.
|
|
|||||
|
Регистрация: Nov 2010
Сообщений: 150
|
Цитата:
|
|
|||||
|
Если я правильно понял, то in4core имел ввиду не паралельную загрузку всех ресурсов несколькими Лоадерами, а загрузку ПОСЛЕДОВАТЕЛЬНУЮ!
Так конечно будет немного сложнее, потому, что прийдется загружать текущую картинку, дожидаться окончания ее загрузки, вытаскивать картинку из Лоадер.контент и переходить к загрузке следующей картинки. Продолжать, пока весь список не окажется загруженым. По завершению этой бубно-ламбады у Вас будут сохранены все картинки (если Вы их вытягивали из Лоадер.контент и запоминали ссылку на них, скажем в массив, вектор или объект). Следовательно можна начинать запихивать у Ваш Обдж:Спрайт, посредством эдЧайлд() |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 150
|
Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 21:40. |
|
|
« Предыдущая тема | Следующая тема » |
|
|