1

这是使用 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();
4

1 回答 1

0
reviews_xml.firstChild.childNodes

<created_at />可能会 包含 <retweeted />

您可以通过查看调试器或执行跟踪语句来检查这一点。created_at 只有一个 childNode(在 XML 处理的 as2 版本中,该 nodeValue 周围有一个隐式 childNode)。

所以

childItems[i].childNodes[2].firstChild.nodeValue

将为空,因为该节点上没有第二个子节点。

请注意,创建 AS3 的原因之一是因为它不会在该行静默失败,而是给您一个错误。沉默的失败不是你的朋友。

还有第二种可能性,即问题在于您的 XML 在您尝试访问它之前尚未加载。在尝试从数组中读取值之前,我在您的代码中看不到任何等待 xml 加载的内容。

于 2012-10-20T20:54:20.213 回答