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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 24.01.2013, 21:38
zomkoner вне форума Посмотреть профиль Отправить личное сообщение для zomkoner Посетить домашнюю страницу zomkoner Найти все сообщения от zomkoner
  № 1  
zomkoner
[++1 30.12.12]
[+1 30.12.12]
 
Аватар для zomkoner

Регистрация: Dec 2012
Адрес: Россия
Сообщений: 57
Question приоритет слушателей

может я конечно и неправильно назвал тему, но всё же! вот код:
Код AS3:
import flash.net.URLRequest;
import flash.display.Loader;
import flash.events.Event;
import flash.display.Sprite;
 
var conteiner:Sprite = new Sprite();
var sqlVariables:URLVariables ;
var sqlRequest:URLRequest = new URLRequest();
var sqlLoader:URLLoader = new URLLoader();
var dataRequest:URLRequest = new URLRequest();
var dataLoader:Loader = new Loader();
 
phpInXML(new URLVariables("pass=&sex=man"), "http://.php");
function phpInXML(sqlZapros:URLVariables, phpAdres:String):void{
addChild(conteiner);
sqlVariables = sqlZapros;
sqlRequest.url = phpAdres;
sqlRequest.method = URLRequestMethod.POST;
sqlRequest.data = sqlVariables;
sqlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
sqlLoader.addEventListener(Event.COMPLETE, completeXML);
sqlLoader.load(sqlRequest);	
}
 
function completeXML(e:Event):void{
	sqlLoader.removeEventListener(Event.COMPLETE, completeXML);
	var respons:XML = new XML(e.target.data.result);
	var responsList:XMLList = respons.stroka;
				for each (var strokaXML:XML in responsList) {
				   addElementFunc(strokaXML.nomer, strokaXML.href);
               }
}
 
function dataLoadComplete(e:Event):void{
	trace('ok');
	var sprite:Sprite = new Sprite();
	addChild(sprite);
	sprite.addChild(dataLoader);
}
 
function addElementFunc(numElement:int, hrefElement:String):void{
var numY:int = int(numElement - 1);
numY= int(numY / 3 + 1);
var numX:int = (numElement - 1);
numX = int(numX % 3);
var xElement:int = (numX * 80);
var yElement:int = (numY * 80);
var shapes:Shape = new Shape();
conteiner.addChild(shapes);
shapes.graphics.lineStyle(2, 0x33CCCC, 0.6);
shapes.graphics.beginFill(0x99FFCC, 0.4);
shapes.graphics.drawRoundRect(xElement + 80,yElement,70,70,40);
dataLoader.x=xElement;
dataLoader.y = yElement;
dataRequest.url = hrefElement;
dataLoader.addEventListener(Event.COMPLETE, dataLoadComplete);
dataLoader.load(dataRequest);
}
почему функция dataLoadComplete не вызываеться?

Старый 24.01.2013, 21:46
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 2  
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
а addElementFunc вызывается?
__________________
adobe AS3 manual

Старый 24.01.2013, 21:51
zomkoner вне форума Посмотреть профиль Отправить личное сообщение для zomkoner Посетить домашнюю страницу zomkoner Найти все сообщения от zomkoner
  № 3  
zomkoner
[++1 30.12.12]
[+1 30.12.12]
 
Аватар для zomkoner

Регистрация: Dec 2012
Адрес: Россия
Сообщений: 57
да! и вырисовывает всё! в xml содержит 7 строк! номера и ссылки! вот квадратики для картинок в функции addElementFunc вызываються а dataLoadComplete нет! проверял трэйсом!

Старый 24.01.2013, 21:56
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 4  
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Значит dataLoader.load(dataRequest); не срабатывает успешно.
Проверьте значение dataRequest.url, и можете помимо Event.COMPLETE слушать так же событие об ошибке:

Код AS3:
dataLoader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
function errorHandler(e:Event):void {
  trace("error load");
}
__________________
adobe AS3 manual

Старый 24.01.2013, 22:06
zomkoner вне форума Посмотреть профиль Отправить личное сообщение для zomkoner Посетить домашнюю страницу zomkoner Найти все сообщения от zomkoner
  № 5  
zomkoner
[++1 30.12.12]
[+1 30.12.12]
 
Аватар для zomkoner

Регистрация: Dec 2012
Адрес: Россия
Сообщений: 57
Код AS3:
dataRequest.url = hrefElement;
dataLoader.addEventListener(IOErrorEvent.IO_ERROR, error);
dataLoader.load(dataRequest);
}
function error(e:Event):void{
	trace("error load");
}
трэёс и в этом случае не пашет!

Старый 24.01.2013, 22:24
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 6  
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
У вас один и тот же лоадер в цикле. Не успевая загрузить одно, он уже начинает грузить другое. Так нельзя.
Нужно дожидаться когда он загрузит одно, и потом по событию COMPLETE грузить следующий элемент
__________________
adobe AS3 manual

Старый 24.01.2013, 22:34
zomkoner вне форума Посмотреть профиль Отправить личное сообщение для zomkoner Посетить домашнюю страницу zomkoner Найти все сообщения от zomkoner
  № 7  
zomkoner
[++1 30.12.12]
[+1 30.12.12]
 
Аватар для zomkoner

Регистрация: Dec 2012
Адрес: Россия
Сообщений: 57
Код AS3:
function completeXML(e:Event):void{
	sqlLoader.removeEventListener(Event.COMPLETE, completeXML);
	var respons:XML = new XML(e.target.data.result);
	var responsList:XMLList = respons.stroka;
				for each (var strokaXML:XML in responsList) {
				   addElementFunc(strokaXML.nomer, strokaXML.href);
               }
}
я же удаляю в самом начале предыдущий слушатель! а в цикле просто вызов функции!
ну а хотя да ты прав цикл бегает быстрее чем грузится картинка и сразу же вызывает грузить следующий... но так хотя бы последнюю картинку загрузить должен! или нет?

Добавлено через 18 минут
помогите решить проблемку... а? ведь понятно же что мне нужно сделать... подскажите а?

Добавлено через 28 минут
пожалуйста!

Добавлено через 2 часа 23 минуты
даже в таком случае:
Код AS3:
import flash.net.URLRequest;
import flash.display.Loader;
import flash.events.Event;
import flash.display.Sprite;
 
var conteiner:Sprite = new Sprite();
var sqlVariables:URLVariables ;
var sqlRequest:URLRequest = new URLRequest();
var sqlLoader:URLLoader = new URLLoader();
var dataRequest:URLRequest = new URLRequest();
var dataLoader:Loader = new Loader();
var dataArr:Array = new Array();
var LineDataImage:int;
 
phpInXML(new URLVariables("pass=пар&sex=man"), "http://face_out.php");
 
function phpInXML(sqlZapros:URLVariables, phpAdres:String):void{
addChild(conteiner);
sqlVariables = sqlZapros;
sqlRequest.url = phpAdres;
sqlRequest.method = URLRequestMethod.POST;
sqlRequest.data = sqlVariables;
sqlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
sqlLoader.addEventListener(Event.COMPLETE, completeXML);
sqlLoader.load(sqlRequest);	
}
 
function completeXML(e:Event):void{
	sqlLoader.removeEventListener(Event.COMPLETE, completeXML);
	var respons:XML = new XML(e.target.data.result);
	var responsList:XMLList = respons.stroka;
				for each (var strokaXML:XML in responsList) {
				   addElementFunc(strokaXML.nomer, strokaXML.href);
               }
	LineDataImage=0;
	loadImageData(LineDataImage);
}
function loadImageData(numLine:int):void{
	if(numLine>dataArr.length){
	}else{
		dataRequest.url = dataArr[numLine].src;
		dataLoader.addEventListener(Event.COMPLETE, dataImageComplete);
		dataLoader.load(dataRequest);
		trace(dataArr[numLine].src);
	}
}
 
function dataImageComplete(e:Event):void{
	trace("sad");
	dataLoader.x = dataArr[LineDataImage].xImage;
	dataLoader.y = dataArr[LineDataImage].yImage;
	conteiner.addChild(dataLoader);
	LineDataImage ++;
	loadImageData(LineDataImage);
}
 
function dataLoadComplete(e:Event):void{
	trace('ok');
	var sprite:Sprite = new Sprite();
	addChild(sprite);
	sprite.addChild(dataLoader);
}
 
function addElementFunc(numElement:int, hrefElement:String):void{
var numY:int = int(numElement - 1);
numY= int(numY / 3 + 1);
var numX:int = (numElement - 1);
numX = int(numX % 3);
var xElement:int = (numX * 80);
var yElement:int = (numY * 80);
var shapes:Shape = new Shape();
conteiner.addChild(shapes);
shapes.graphics.lineStyle(2, 0x33CCCC, 0.6);
shapes.graphics.beginFill(0x99FFCC, 0.4);
shapes.graphics.drawRoundRect(xElement + 80,yElement,70,70,40);
dataArr.push({xImage:xElement, yImage:yElement, src : hrefElement});
}
доходит только до сюда и один раз! а надо 7!
Код AS3:
		dataRequest.url = dataArr[numLine].src;
		dataLoader.addEventListener(Event.COMPLETE, dataImageComplete);
		dataLoader.load(dataRequest);
		trace(dataArr[numLine].src);
	}
трэйсер выводит ссылку а слушатель на dataLoader не пашет.... в этот то раз почему?
__________________
Я слышу и забываю.Я вижу и запоминаю.Я делаю и понимаю.

Старый 25.01.2013, 01:10
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 8  
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Название темы не отражает сути вопроса. Попробуйте еще раз. Ваша манера изложения заставляет тянуться к плюсомету.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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