Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.10.2013, 16:57
Androidwww вне форума Посмотреть профиль Отправить личное сообщение для Androidwww Найти все сообщения от Androidwww
  № 1  
Ответить с цитированием
Androidwww

Регистрация: Sep 2013
Сообщений: 12
По умолчанию Как загружать внешние 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
Подскажите что надо чтобы отрабатывал все подгрузки!!!

Старый 04.10.2013, 18:25
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 2  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Перенесите
Код AS3:
var loaderIMG:Loader=new Loader();
в тело цикла. А в обработчике onLoadIMG замените
Код AS3:
loaderIMG
на
Код AS3:
e.target.content
Добавлено через 29 минут
да и с позиционирование у Вас проблемы. + Писать в кадрах не хорошо)
__________________
return this...

Старый 05.10.2013, 07:17
Androidwww вне форума Посмотреть профиль Отправить личное сообщение для Androidwww Найти все сообщения от Androidwww
  № 3  
Ответить с цитированием
Androidwww

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

КОД:
Код 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
Изображения
       
Вложения
Тип файла: swf img.swf (1.8 Кб, 26 просмотров)

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:47.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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