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

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

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

Регистрация: Feb 2012
Сообщений: 36
По умолчанию Парсинг txt/XML

Добрый вечер.
Имеется
Код AS3:
var myXML:XML = new XML();
var XML_URL:String = "config.xml";
var myXMLURL:URLRequest = new URLRequest(XML_URL);
var myLoader:URLLoader = new URLLoader(myXMLURL);
myLoader.addEventListener("complete", xmlLoaded);
var lol:String = new String("lol");
function xmlLoaded(event:Event):void {
 
    myXML = XML(myLoader.data);
	var xmlDoc:XMLDocument = new XMLDocument();
    xmlDoc.ignoreWhite = true;
    var menuXML:XML = XML(myLoader.data);
    xmlDoc.parseXML(menuXML.toXMLString());
 
	for each (var ConfigItems:XML in myXML..ConfigureItems) {
 
	    var textit:String = ConfigItems.textit.toString();
    }
}
Как вынести значение textit за функцию, т.е., чтобы можно было переменную использовать в другом метсе, а не только в пределах функции xmlLoaded?

Старый 31.05.2012, 19:44
DaFive вне форума Посмотреть профиль Отправить личное сообщение для DaFive Посетить домашнюю страницу DaFive Найти все сообщения от DaFive
  № 2  
Ответить с цитированием
DaFive
 
Аватар для DaFive

Регистрация: May 2008
Адрес: {0,0}
Сообщений: 754
Записей в блоге: 1
Отправить сообщение для DaFive с помощью ICQ
Как вариант объявить её после var lol:String = new String("lol");
__________________
Кодинг, багинг, алгоритминг. me @

Старый 31.05.2012, 19:48
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 3  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
Код AS3:
public class MyXMLLoader extends EventDispatcher{
  private var _text : String;
  public function MyXMLLoader(){
    ...
  }
 
  //*** public ***//
  public function get text():String{
    return _text;
  }
 
  //*** handlers ***//
  private function xmlLoaded(event:Event):void {
    ... // получаете конфиг
    var textit:String = configItems.textit.toString();
    dispatchEvent(new XmlLoaderEvent(XmlLoaderEvent.LOADED, textit));
  }
}
 
public class XmlLoaderEvent extends Event{
  public stataic const LOADED : String = "loaded";
  private var _text : String;
  public function XmlLoaderEvent(type : String, text : String){
    super(type);
    _text = text;
  }
}
Вот два варианта. Даже три.

1. Просто спрашивать, когда нужно text у экземпляра лоадера.
2. Диспетчить событие сразу с данными.
3. Диспетчить событие о том, что данные есть и уже после этого вытаскивать их.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.

Старый 31.05.2012, 19:55
leff27 вне форума Посмотреть профиль Отправить личное сообщение для leff27 Найти все сообщения от leff27
  № 4  
Ответить с цитированием
leff27

Регистрация: Feb 2012
Сообщений: 36
Я в классах не пишу

Цитата:
Сообщение от DaFive Посмотреть сообщение
Как вариант объявить её после var lol:String = new String("lol");
Код AS3:
var textit:String;
var myXML:XML = new XML();
var XML_URL:String = "config.xml";
var myXMLURL:URLRequest = new URLRequest(XML_URL);
var myLoader:URLLoader = new URLLoader(myXMLURL);
myLoader.addEventListener("complete", xmlLoaded);
function xmlLoaded(event:Event):void {
 
    myXML = XML(myLoader.data);
	var xmlDoc:XMLDocument = new XMLDocument();
    xmlDoc.ignoreWhite = true;
    var menuXML:XML = XML(myLoader.data);
    xmlDoc.parseXML(menuXML.toXMLString());
 
	for each (var ConfigItems:XML in myXML..ConfigureItems) {
 
	     textit = ConfigItems.textit.toString();
    }
}
Так? Не работает

Старый 31.05.2012, 19:57
DaFive вне форума Посмотреть профиль Отправить личное сообщение для DaFive Посетить домашнюю страницу DaFive Найти все сообщения от DaFive
  № 5  
Ответить с цитированием
DaFive
 
Аватар для DaFive

Регистрация: May 2008
Адрес: {0,0}
Сообщений: 754
Записей в блоге: 1
Отправить сообщение для DaFive с помощью ICQ
У меня работает вне функции. Вопрос в другом. Где нужна эта переменная?

з.ы. пишите в классах.
__________________
Кодинг, багинг, алгоритминг. me @

Старый 31.05.2012, 20:05
leff27 вне форума Посмотреть профиль Отправить личное сообщение для leff27 Найти все сообщения от leff27
  № 6  
Ответить с цитированием
leff27

Регистрация: Feb 2012
Сообщений: 36
Код AS3:
var textit:String;
var myXML:XML = new XML();
var XML_URL:String = "config.xml";
var myXMLURL:URLRequest = new URLRequest(XML_URL);
var myLoader:URLLoader = new URLLoader(myXMLURL);
myLoader.addEventListener("complete", xmlLoaded);
var lol:String = new String("lol");
function xmlLoaded(event:Event):void {
 
    myXML = XML(myLoader.data);
	var xmlDoc:XMLDocument = new XMLDocument();
    xmlDoc.ignoreWhite = true;
    var menuXML:XML = XML(myLoader.data);
    xmlDoc.parseXML(menuXML.toXMLString());
 
	for each (var ConfigItems:XML in myXML..ConfigureItems) {
 
	     textit = ConfigItems.textit.toString();
    }
}
trace(textit);
Трейс показывает null

В XML
Код:
<?xml version="1.0" encoding="utf-8"?>
<XML>
      <ConfigureItems>

         <textit>http://domain.ru/404.html</textit>
      </ConfigureItems>  
</XML>
Что не так?

Старый 31.05.2012, 20:10
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 7  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
1. Пишите в классах.
2. Впрочем, продиспетчить событие можно и из кадра.
3. Трейс показывает null, потому что выполнение кода попадает на трейс до того, как выполнится функция
Код AS3:
xmlLoaded
, тк загрузка -- асинхронная операция.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.

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

Регистрация: Feb 2012
Сообщений: 36
Спасибо! Через таймер работает.

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

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

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


 


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


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