2009-06-01 10 views
0

Ich versuche ein ActionScript-Programm zu erstellen, das in der Lage ist, einen RSS-Feed zu lesen und den Titel und die Beschreibung des Artikels zu finden. Ich bin in der Lage, das XML in eine Variable zu laden, aber wenn ich versuche, die Kindknoten des XML anzusehen, sagt mir die Ausgabe, dass es keine gibt. Ich konnte eine sehr gute RSS-Reader-Erklärung finden, die in ActionScript 3 gemacht wurde, aber ich muss ActionScript 2 verwenden. Jede Hilfe würde sehr geschätzt werden und mich wissen lassen, wenn ich das komplett falsch mache.RSS-Reader in 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 
+0

Nur neugierig-- Warum müssen Sie AS2 verwenden? Flash Player 9 ist schon eine Weile aus und Adobe hat eine aggressive Upgrade-Strategie. – Kekoa

+0

Adobe hat möglicherweise eine aggressive Upgrade-Strategie, aber das bedeutet nicht, dass die Benutzer dies tun. :) Obwohl selbst dann sind die Upgrade-Kurven, die wir sehen, viel besser für Flash als alles andere. Wir haben immer noch einige Leute, die Flash 8 noch benutzen (und wir mussten vor ein paar Monaten eine spezielle Erlaubnis bekommen, Flash 7 zu entfernen). – Herms

+0

Ich entwickle dies für ein System, das nur mit einer älteren Version von Flash umgehen kann, also muss ich es in ActionScript 2 machen. – Anton

Antwort

1

Sie müssen warten, bis das XML geladen ist, bevor auf die Daten zugegriffen wird. Sie müssen warten, bis onLoad ausgelöst wird, bevor Sie auf die geladenen Daten zugreifen können.

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"); 
0

ich bearbeiten Ihr Skript wie die `var foo:

, um Ihren Code Die einfachste Änderung sein, dies würde zu behandeln XML = new XML(); foo.onLoad = Funktion (Erfolg: Boolean) { Trace (foo); rsss.text = foo; } foo.load ("http://feeds.nytimes.com/nyt/rss/HomePage");

var myArr: Array = neues Array(); myArr = foo.childNodes; rsss.text = myArr.length; `

und bitte machen Sie einen dynamischen Text und vergeben Sie den Instanznamen mit rss. Jetzt erhalten Sie alle xml-Daten.

1

Das war krank. Ich baue einen Twitter-Feed in AS2 (wer braucht noch AS2?) Und das hat total geholfen.