这是使用xml从Twitter Feed中提取数据,它运行良好,但我无法提取第一个数据?
trace(wordList [0])始终未定义
如果我想添加我写这个日期:
childItems[i].childNodes[0].firstChild.nodeValue
怎么能把这个推到阵列?
var wordList:Array = new Array();
var curIndex:Number = 0;
var reviews_xml:XML = new XML();
reviews_xml.ignoreWhite = true;
reviews_xml.onLoad = function (success:Boolean):Void {
if (success) {
var childItems:Array = reviews_xml.firstChild.childNodes;
for (var i:Number = 0; i < childItems.length; i++) {
wordList.push(childItems[i].childNodes[2].firstChild.nodeValue);
}
resimAlanim.loadMovie(childItems[0].childNodes[9].childNodes[5].firstChild.nodeValue);
} else {
trace("yüklenemedi");
}
}
setInterval( showNextText, 3000 );
function showNextText()
{
curIndex++;
renderText(curIndex);
if((curIndex )== wordList.length){
curIndex = 0;
renderText(curIndex);
};
}
function renderText( index:Number )
{
text_mc.text = wordList[index];
trace(index);
}
reviews_xml.load("https://api.twitter.com/1/statuses/user_timeline.xml?include_entities=false&include_rts=true&screen_name=twitter&count=5");
renderText(curIndex);
stop();
答案 0 :(得分:0)
reviews_xml.firstChild.childNodes
可能包含
<created_at />
至<retweeted />
您可以通过查看调试器或执行trace语句来检查这一点。 created_at只有一个childNode(在XML处理的as2版本中,在该nodeValue周围有一个隐式的childNode)。
所以
childItems[i].childNodes[2].firstChild.nodeValue
将为null,因为该节点上没有第二个子节点。
请注意,创建AS3的原因之一是因为它不会在该行上静默失败,而是会给您一个错误。沉默的失败不你的朋友。
还有第二种可能性,即问题是您在尝试访问XML之前未加载XML。在尝试从数组中读取值之前,我没有在代码中看到任何等待xml加载的内容。