2009-06-01 7 views
0

J'essaie de créer un programme actionscript qui sera capable de lire un flux RSS et de trouver le titre et la description de l'article. Je suis capable de charger le XML dans une variable, mais quand j'essaie de regarder les nœuds enfants du XML, la sortie me dit qu'il n'y en a pas. J'ai été capable de trouver une très bonne explication du lecteur RSS en ActionScript 3, mais j'ai besoin d'utiliser ActionScript 2. Toute aide serait grandement appréciée et laissez-moi savoir Si je vais à ce sujet complètement dans le mauvais sens.Lecteur RSS dans 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

Juste curieux-- Pourquoi avez-vous besoin d'utiliser AS2? Flash Player 9 est sorti depuis un moment maintenant, et Adobe a une stratégie de mise à niveau agressive. – Kekoa

+0

Adobe peut avoir une stratégie de mise à niveau agressive, mais cela ne signifie pas que les utilisateurs le font. :) Bien que même alors, les courbes de mise à niveau que nous voyons sont beaucoup mieux pour Flash que toute autre chose. Certaines personnes utilisent encore Flash 8 (et nous avons dû obtenir une autorisation spéciale pour nous débarrasser du support de Flash 7 il y a quelques mois). – Herms

+0

Je suis en train de développer ceci pour un système qui ne peut gérer qu'une ancienne version de Flash, donc j'ai besoin de le faire en ActionScript 2. – Anton

Répondre

1

Vous devez attendre le chargement du code XML avant d'accéder aux données. Vous devez attendre que onLoad se déclenche avant de pouvoir accéder aux données chargées.

Le changement le plus simple à votre code pour gérer ce serait:

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

je modifier votre script comme `var foo: XML = new XML(); foo.onLoad = fonction (succès: booléen) { trace (foo); rss.text = foo; } foo.load ("http://feeds.nytimes.com/nyt/rss/HomePage");

var myArr: Array = new Array(); myArr = foo.childNodes; rss.text = myArr.length; `

et de créer un texte dynamique et de donner un nom d'instance avec rss. maintenant vous obtiendrez toutes les données XML.

1

C'était malade. Je construis un fil Twitter dans AS2 (qui a encore besoin d'AS2?) Et cela m'a totalement aidé.

Questions connexes