Flash AS2循环错误

时间:2012-10-19 20:41:08

标签: xml flash twitter actionscript-2

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

1 个答案:

答案 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加载的内容。