Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   чтение xml из класса (http://www.flasher.ru/forum/showthread.php?t=110486)

alecsisk 03.04.2008 18:02

чтение xml из класса
 
Извините, кто-нибудь читал файл xml из класса? Никак не могу сделать... :( Если читали то подскажите пожалуйста как или поделитесь ссылкой. Просто гораздо интереснее написать 2 строчки кода и получить готовый массив из xml с помощью класса, чем написать 30 строчек которые будут мешаться.

Obi 03.04.2008 18:45

Извиняем, читали. Из класса так-же читать, как и не из класса.

alecsisk 03.04.2008 18:59

Это конечно хорошо что вы читали, но я попросил сказать как. Я пробывал записать в 'as file' функцию, потом вызывать её из swf, всё работает с #include. Но интересует вопрос чтения именно из класса, там код будет другим. Так что я не знаю как вы читали "из класса так же как не из класса"

Obi 03.04.2008 19:04

Какой инклуд, о чем вы?
Код:

class LoadXML() {
public function LoadXML(url:String) {
  var myXML:XML = new XML();
  myXML.load(url);
  myXML.onData = function(str:String) { trace(str) }
}

=======================

new LoadXML("myxml.xml");


alecsisk 03.04.2008 19:28

Подредактировал
Код:

class LoadXML {
public function LoadXML(url:String) {
  var myXML:XML = new XML();
  myXML.load(url);
  myXML.ignoreWhite = true;
  public var len_index:Number;
  len_index = myXML.firstChild.childNodes.length;
  trace(len_index);
}
}

Выдает
Код:

public var len_index:Number - Attribute used outside class.
Такая же проблема у меня. Навена какая-нить глупая ошибка :(
UPD: эту ошибку решил, обьявлять len_index надо вне фунции, теперь trace говорит undifined

Obi 03.04.2008 20:39

Глобальные свойства нужно определять вне методов
Да и вместо public лучше писать private и ставить getter/setter.

Цитата:

UPD: эту ошибку решил, обьявлять len_index надо вне фунции, теперь trace говорит undifined
Ну правильно, ведь хмл еще не загрузился, а вы его уже трейсите.
надо так:
Код:

class LoadXML {
private var len_index:Number;
public function LoadXML(url:String) {
  var myXML:XML = new XML();
  myXML.load(url);
  myXML.onLoad = function() {
      this.ignoreWhite = true;
      len_index = this.firstChild.childNodes.length;
      trace(len_index);
  }
}
}


alecsisk 03.04.2008 21:10

Спасибо, думаю без вас бы не справился =). Только
Код:

myXML.ignoreWhite = true
нады поставить так
Код:

public function LoadXML(url:String) {
                var myXML:XML = new XML();
                myXML.load(url);
                myXML.ignoreWhite = true;

иначе трэйсица 0.

Obi 03.04.2008 21:11

Ой, пардон, опечатался.


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

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