Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как загружать внешние JPG проблема со слушателем! (http://www.flasher.ru/forum/showthread.php?t=203687)

Androidwww 04.10.2013 16:57

Как загружать внешние JPG проблема со слушателем!
 
Хочу нарисовать несколько прямоугольников и заполнить их текстурами взятыми из внешних JPG
заполнять beginBitmapFill я научился! но возникла проблема с функцией слушателем!!! который я запускаю после прорисовки КАЖДОГО! прямоугольника. Слушатель отрабатывает ТОЛЬКО последний!!!
выглядит так как будто она работает сама по себе...
Вот образец кода:

Код AS3:

var g:Graphics;
var x1:int;        var y1:int;        var x2:int;        var y2:int;
var IMG:String;
var loaderIMG:Loader=new Loader();
var spriteIMG:Sprite = new Sprite();
 
 
graf(10,100,20,300,0x777777,"quadro1.jpg");
graf(110,200,20,300,0x777777,"quadro2.jpg");
graf(210,300,20,300,0x777777,"quadro3.jpg");
graf(310,400,20,300,0x777777,"quadro4.jpg");
 
function graf(xx1,xx2,yy1,yy2,colorL,IMG):void
{
// присваиваем значения переменным :       
x1 = xx1; x2 = xx2; y1 = yy1; y2 = yy2;
trace(' ===========================  КООРДИНАТЫ: '+' '+x1+' '+x2+' '+y1+' '+y2);               
 
addChild(spriteIMG)
g = spriteIMG.graphics; 
g.lineStyle(0.5, colorL);
g.moveTo(x1, y1);
g.lineTo(x1, y2);
g.lineTo(x2, y2);
g.lineTo(x2, y1);
g.lineTo(x1, y1);
 
trace(' ВОТ ТУТ ЗАПУСКАЕМ СЛУШАТЕЛЯ: ');
loaderIMG.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadIMG);     
loaderIMG.load(new URLRequest(IMG));
}
 
 
function onLoadIMG(e:Event):void
{
        trace(' НО ОН ГРУЗИТ ТОЛЬКО ПОСЛЕДНИЙ ФАЙЛ!!! Координаты '+' '+x1+' '+x2+' '+y1+' '+y2);
    spriteIMG.addChild(loaderIMG);
    loaderIMG.x = x1; loaderIMG.y = y1;
    addChild(spriteIMG);             
}

Результаты трейсов:

Код:

===========================  КООРДИНАТЫ:  10 100 20 300
 ВОТ ТУТ ЗАПУСКАЕМ СЛУШАТЕЛЯ:
 ===========================  КООРДИНАТЫ:  110 200 20 300
 ВОТ ТУТ ЗАПУСКАЕМ СЛУШАТЕЛЯ:
 ===========================  КООРДИНАТЫ:  210 300 20 300
 ВОТ ТУТ ЗАПУСКАЕМ СЛУШАТЕЛЯ:
 ===========================  КООРДИНАТЫ:  310 400 20 300
 ВОТ ТУТ ЗАПУСКАЕМ СЛУШАТЕЛЯ:
 НО ОН ГРУЗИТ ТОЛЬКО ПОСЛЕДНИЙ ФАЙЛ!!! Координаты  310 400 20 300

Подскажите что надо чтобы отрабатывал все подгрузки!!!

AlexCooper 04.10.2013 18:25

Перенесите
Код AS3:

var loaderIMG:Loader=new Loader();

в тело цикла. А в обработчике onLoadIMG замените
Код AS3:

loaderIMG

на
Код AS3:

e.target.content

Добавлено через 29 минут
да и с позиционирование у Вас проблемы. + Писать в кадрах не хорошо)

Androidwww 05.10.2013 07:17

Вложений: 5
Благодарю! кое что изменилось... Слушатель отрабатывает столько раз сколько надо, но в самом конце и координаты подставляет последние )

КОД:
Код AS3:

var g:Graphics;
var x1:int;        var y1:int;        var x2:int;        var y2:int;
var IMG:String;
//var loaderIMG:Loader=new Loader();
var spriteIMG:Sprite = new Sprite();
 
 
graf(10,100,20,300,0x777777,"t1.jpg");
graf(110,200,20,300,0x777777,"t2.jpg");
graf(210,300,20,300,0x777777,"t3.jpg");
graf(310,400,20,300,0x777777,"t4.jpg");
 
function graf(xx1,xx2,yy1,yy2,colorL,JPG):void
{
 
// присваиваем значения переменным :       
x1 = xx1; x2 = xx2; y1 = yy1; y2 = yy2; IMG = JPG;
trace(' ===========================  КООРДИНАТЫ: '+' '+x1+' '+x2+' '+y1+' '+y2);               
 
addChild(spriteIMG)
g = spriteIMG.graphics; 
g.lineStyle(0.5, colorL);
g.moveTo(x1, y1);
g.lineTo(x1, y2);
g.lineTo(x2, y2);
g.lineTo(x2, y1);
g.lineTo(x1, y1);
 
trace(' ВОТ ТУТ ЗАПУСКАЕМ СЛУШАТЕЛЯ: ');
var loaderIMG:Loader=new Loader();
loaderIMG.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadIMG);     
loaderIMG.load(new URLRequest(IMG));
}
 
 
function onLoadIMG(e:Event):void
{
        trace(' Координаты в СЛУШАТЕЛЕ '+' '+x1+' '+x2+' '+y1+' '+y2+' '+IMG);
    spriteIMG.addChild(e.target.content);
    e.target.content.x = x1; e.target.content.y = y1;
    addChild(spriteIMG);             
}

ТРЭЙС:
Код:

===========================  КООРДИНАТЫ:  10 100 20 300
 ВОТ ТУТ ЗАПУСКАЕМ СЛУШАТЕЛЯ:
 ===========================  КООРДИНАТЫ:  110 200 20 300
 ВОТ ТУТ ЗАПУСКАЕМ СЛУШАТЕЛЯ:
 ===========================  КООРДИНАТЫ:  210 300 20 300
 ВОТ ТУТ ЗАПУСКАЕМ СЛУШАТЕЛЯ:
 ===========================  КООРДИНАТЫ:  310 400 20 300
 ВОТ ТУТ ЗАПУСКАЕМ СЛУШАТЕЛЯ:
 Координаты в СЛУШАТЕЛЕ  310 400 20 300 t4.jpg
 Координаты в СЛУШАТЕЛЕ  310 400 20 300 t4.jpg
 Координаты в СЛУШАТЕЛЕ  310 400 20 300 t4.jpg
 Координаты в СЛУШАТЕЛЕ  310 400 20 300 t4.jpg



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

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