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

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

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

Регистрация: Apr 2009
Сообщений: 21
Отправить сообщение для totruok с помощью ICQ
По умолчанию sendAndLoad в функции

Здравствуйте, столкнулся с проблемой, что у меня игнорируется sendAndLoad в функции

Код AS1/AS2:
	getV = function (v1) {
		sendvar.sendAndLoad(SERVER, varxml, "POST");    
		varxml.onLoad  = function() {
        	vr=varxml.firstChild.firstChild.nodeValue;
			trace("Загрузил");
		}
		return vr;
	}

Старый 15.05.2009, 00:26
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 2  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

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

Старый 15.05.2009, 02:01
totruok вне форума Посмотреть профиль Отправить личное сообщение для totruok Найти все сообщения от totruok
  № 3  
Ответить с цитированием
totruok
 
Аватар для totruok

Регистрация: Apr 2009
Сообщений: 21
Отправить сообщение для totruok с помощью ICQ
В Вы не могли бы всё же помочь? Я смотрел документацию, но так и не нашёл ответа на свой вопрос

Старый 15.05.2009, 02:23
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Сдается мне, что Вы смешали методы sendAndLoad классов XML и LoadVars. Вы ожидаете в ответе XML, а LoadVars ожидает в ответе пары [имя=значение], разделенные '&'. Так понятнее?
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 15.05.2009, 02:51
totruok вне форума Посмотреть профиль Отправить личное сообщение для totruok Найти все сообщения от totruok
  № 5  
Ответить с цитированием
totruok
 
Аватар для totruok

Регистрация: Apr 2009
Сообщений: 21
Отправить сообщение для totruok с помощью ICQ
Но без функции у меня всё работает 0_о

Старый 15.05.2009, 03:08
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 6  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Гм. Пути флеша неиспобедимы. Мой косяк.
По Вам: асинхронная операция загрузки не может моментально вернуть результат. То есть, Вы надеятесь получить результат просто вызвав getV. Она вернет undefined, потому что не будет ждать окончания загрузки.

Вам необходимо продолжить работу после получения ответа. вот и всё
Код AS1/AS2:
var app:Object = this;
 
varxml.onLoad = function(success:Boolean) {
	if (success) {
		trace("Загрузил");
		app.processResponce(this);
	} else {
		trace("Oooops!");
	}
 
};
 
sendvar.sendAndLoad(SERVER, varxml, "POST");    
 
 
function processResponce(value:XML):Void {
	var vr:String = value.firstChild.firstChild.nodeValue;
	// go up!
}
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 15.05.2009, 03:31
totruok вне форума Посмотреть профиль Отправить личное сообщение для totruok Найти все сообщения от totruok
  № 7  
Ответить с цитированием
totruok
 
Аватар для totruok

Регистрация: Apr 2009
Сообщений: 21
Отправить сообщение для totruok с помощью ICQ
У меня там всё же в функции есть что то я просто это вырезал для наглядности и структуру мне желательно такую же оставить, я попытался Ваш код переписать, всё равно не работает.

Код AS1/AS2:
getV = function (v1) {
//тоесть тут бла бла бла зависящий от v1 и влияющий на sendvar
		sendvar.sendAndLoad(SERVER, varxml, "POST");    
		varxml.onLoad  = function() {
        	vr=varxml.firstChild.firstChild.nodeValue;
			trace("Загрузил");
		}
		return vr;
	}

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Ну не вернет getV ожидаемое значение! потому что varxml.firstChild.firstChild.nodeValue на момент начала загрузки не существует. Дождитесь окончания загрузки. потом и спрашивайте свой vr.


Код AS1/AS2:
function getV(v1):Void {
 
	//тоесть тут бла бла бла зависящий от v1 и влияющий на sendvar
 
	var app:Object = this;
 
	varxml.onLoad = function(success:Boolean) {
		if (success) {
			trace("Загрузил");
			app.processResponce(this);
		} else {
			trace("Oooops!");
		}
 
	};
 
	sendvar.sendAndLoad(SERVER, varxml, "POST");    
}
 
function processResponce(value:XML):Void {
	var vr:String = value.firstChild.firstChild.nodeValue;
	// go up!
}
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 15.05.2009, 03:52
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 9  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Такая структура работать не будет.
Код:
getV = function (v1) {
//тоесть тут бла бла бла зависящий от v1 и влияющий на sendvar
	sendvar.sendAndLoad(SERVER, varxml, "POST");    
	varxml.onLoad  = function() {
		vr=varxml.firstChild.firstChild.nodeValue;
		trace("Загрузил");
	}
	return vr;
}
Сначала выполняется желтая часть, а потом, когда нибудь, голубая.
Как видите return vr находится в желтой части, а vr=varxml.firstChild.firstChild.nodeValue; в голубой, поэтому будете получать undefined
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 15.05.2009, 04:05
totruok вне форума Посмотреть профиль Отправить личное сообщение для totruok Найти все сообщения от totruok
  № 10  
Ответить с цитированием
totruok
 
Аватар для totruok

Регистрация: Apr 2009
Сообщений: 21
Отправить сообщение для totruok с помощью ICQ
А как в таком случае приостановить выполнение функции, пока не придёт ответ?

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

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

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


 


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


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