1

これは xml を使用して Twitter フィードからデータをプルしています。うまく機能していますが、最初のデータをプルできませんか?

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 が 1 つしかありません (XML 処理の as2 バージョンでは、その nodeValue の周りに暗黙の childNode があります)。

そう

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

そのノードには 2 番目の子ノードがないため、null になります。

AS3 が作成された理由の 1 つは、その行でサイレントに失敗するのではなく、代わりにエラーが発生するためであることに注意してください。静かな失敗はあなたの友達ではありません。

2 番目の可能性があります。これは、アクセスしようとする前に XML が読み込まれていないことが問題であるということです。あなたのコードには、配列から値を読み取ろうとする前に xml の読み込みを確実に待機するものは何もありません。

于 2012-10-20T20:54:20.213 に答える