RSS-ридер в actionscript 2

Я пытаюсь создать программу actionscript, которая сможет читать RSS-канал и находить заголовок и описание элемента. Я могу загрузить XML в переменную, но когда я пытаюсь просмотреть дочерние узлы XML, вывод говорит мне, что их нет. Я смог найти очень хорошее объяснение для чтения RSS, сделанное в ActionScript 3, но мне нужно использовать ActionScript 2. Любая помощь будет очень признательна и дайте мне знать, если я пойду по этому пути совершенно неправильно.

var foo:XML = new XML();
foo.onLoad = function(success:Boolean) {
    trace(foo);
}
foo.load("http://feeds.nytimes.com/nyt/rss/HomePage");

var myArr:Array = new Array();
myArr = foo.childNodes;
trace(myArr.length); //Prints 0

person Anton    schedule 01.06.2009    source источник
comment
Просто любопытно-- Зачем вам нужно использовать AS2? Flash player 9 уже давно отсутствует, и у Adobe агрессивная стратегия обновления.   -  person Kekoa    schedule 01.06.2009
comment
У Adobe может быть агрессивная стратегия обновления, но это не значит, что это делают пользователи. :) Хотя даже тогда кривые обновления, которые мы видим, намного лучше для Flash, чем для чего-либо еще. У нас все еще есть люди, использующие Flash 8 (и нам пришлось получить специальное разрешение, чтобы избавиться от поддержки Flash 7 несколько месяцев назад).   -  person Herms    schedule 01.06.2009
comment
Я разрабатываю это для системы, которая может работать только со старой версией flash, поэтому мне нужно сделать это в ActionScript 2.   -  person Anton    schedule 01.06.2009


Ответы (3)


Вам нужно дождаться загрузки XML перед доступом к данным. Вам нужно дождаться срабатывания onLoad, прежде чем вы сможете получить доступ к загруженным данным.

Самым простым изменением в вашем коде для обработки этого будет:

var foo:XML = new XML();
foo.onLoad = function(success:Boolean) {
  var myArr:Array = new Array();
  myArr = foo.childNodes;
  trace(myArr.length);
}
foo.load("http://feeds.nytimes.com/nyt/rss/HomePage");
person Herms    schedule 01.06.2009

Это было больно. Я создаю ленту Twitter в AS2 (кому все еще нужна AS2?), и это полностью помогло.

person drpunchman    schedule 09.01.2010