Показать сообщение отдельно
Старый 15.01.2012, 14:00
jeanosis вне форума Посмотреть профиль Отправить личное сообщение для jeanosis Найти все сообщения от jeanosis
  № 1  
Ответить с цитированием
jeanosis

Регистрация: Dec 2011
Сообщений: 15
По умолчанию Загрузка картинок в Vector

Доброго времени суток.
Есть текстовый документ, например, "Трололо |img+1.png+500+400| " и функция, которая разбивает разбивает эту строку на массив, определяет, где текст, а где будет картинка(и), грузит картинку(и) и добавляет все в groupVector.
Нужно, что бы нормально работали imgloader.width & imgloader.height.
Для этого, как я понял, нужно добавить слушатель:
Код AS3:
imgloader.addEventListener(Event.COMPLITE, trololo)
Но как реализовать это так, что бы сохранить очередность добавления элементов в groupVector?

Функция выглядит так:
Код AS3:
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);
 }