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

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

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

Регистрация: Dec 2006
Сообщений: 41
Question xml.onLoad = function(); //not success

Здравствуйте!
Наверное глупый вопрос, но для меня важный. Подобный следующему коду взял из хелпа самого флэша:

Код:
stop();

function on_load(success){
	if(success){
		text_out = "succes";
		cfg_xml.parseXML();
		gotoAndStop(2);
	}
	else{
		text_out = "not succes";
	}
}

var cfg_xml:XML = new XML();
cfg_xml.ignoreWhite = true;
cfg_xml.onLoad = on_load();
cfg_xml.load("cfg.xml");
Почему "text_out" всегда "not succes"? означает ли это сfg.xml не подгрузился? И зачем вообще слово "success" в атрибуты функции ставить?
Спасибо.

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
потому что
Код:
cfg_xml.onLoad = on_load;
не результат работы функции, а она сама.
И еще неплохо status проверять:
Код:
function on_load(success){
	if(!success || this.status < 0){
		text_out = "ERROR>" + this.status;
		return;
	}
	// тут все нормально
}


Последний раз редактировалось Kikasso; 20.04.2007 в 02:36.
Старый 20.04.2007, 13:18
FFfsam вне форума Посмотреть профиль Отправить личное сообщение для FFfsam Найти все сообщения от FFfsam
  № 3  
Ответить с цитированием
FFfsam

Регистрация: Dec 2006
Сообщений: 41
Kikasso
Цитата:
не результат работы функции, а она сама.
Не понял что имели ввиду. Здесь я просто запускаю функцию on_load() по событию onLoad.

А статус вроде можно проверить только после парсинга?
Вообще интересно: функция вызывается, success = undefinded и, соответсвенно text_out = "not succes", а когда смотрю List Variables то загруженный xml там присутствует.

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Я имел в виду скобки убрать. У вас функция выполняется в момент "присвоения".

если не верите, напишите так:
Код:
cfg_xml.onLoad = on_load(true);
, а строчку cfg_xml.load(что-то) закомментируйте.

Парсится xml автоматически, та строчка про parseXML лишняя.


Последний раз редактировалось Kikasso; 20.04.2007 в 13:36.
Старый 20.04.2007, 13:36
FFfsam вне форума Посмотреть профиль Отправить личное сообщение для FFfsam Найти все сообщения от FFfsam
  № 5  
Ответить с цитированием
FFfsam

Регистрация: Dec 2006
Сообщений: 41
без скобок функция не вызывается

Старый 20.04.2007, 13:37
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 6  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Идите обратно в хелп и посмотрите внимательно.

Старый 20.04.2007, 15:08
FFfsam вне форума Посмотреть профиль Отправить личное сообщение для FFfsam Найти все сообщения от FFfsam
  № 7  
Ответить с цитированием
FFfsam

Регистрация: Dec 2006
Сообщений: 41
В общем в первом фрейме:
Код:
cfg_xml = new XML;
cfg_xml.ignoreWhite = true;
cfg_xml.load("cfg.xml");
В третьем фрейме:
Код:
if(cfg_xml.loaded != true){
	trace("false");
	gotoAndPlay(2);}
else{
	trace("true");
	stop();}
Так все заработало.
А так как вы писали у меня не получается. Если не сложно - приведите полностью формат правильной записи.

Старый 20.04.2007, 16:17
dhunter вне форума Посмотреть профиль Отправить личное сообщение для dhunter Найти все сообщения от dhunter
  № 8  
Ответить с цитированием
dhunter
 
Аватар для dhunter

Регистрация: Aug 2006
Сообщений: 65
а почему нельзя так написать?
Код:
stop()
cfg_xml = new XML;
cfg_xml.ignoreWhite = true;
cfg_xml.load("cfg.xml");
cfg_xml.onLoad = function(success) {
if(success){gotoAndPlay(2);trace("success")}else{trace("not success")}
}


Последний раз редактировалось dhunter; 20.04.2007 в 16:19.
Старый 20.04.2007, 17:19
FFfsam вне форума Посмотреть профиль Отправить личное сообщение для FFfsam Найти все сообщения от FFfsam
  № 9  
Ответить с цитированием
FFfsam

Регистрация: Dec 2006
Сообщений: 41
dhunter, ваш код работает!
но если поставить: cfg_xml:XML = new XML вместо cfg_xml = new XML или function(success:Boolean) вместо function(success) (так приведено в хелпе) - то не работает!

Старый 20.04.2007, 17:21
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Потому что типизация должна использоваться вместе с var в данном случае (в первой строке).

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

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

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


 


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


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