0

次のような3075のエントリを持つxmlファイルがあります

<item id="1" itype="COLOUR"></item>

アクション スクリプト 2 を使用して xml をロードし、while ループでこのコードを使用してすべてのデータを配列に入力します。

my_xml = new XML();
paper_crumbs = Array();
my_xml.load("sample.xml");
my_xml.onLoad = my_function;
my_xml.ignoreWhite = 1;

function my_function() {
var b = true;
var num = "1";
while(b == true){
paper_crumbs[my_xml.firstChild.childNodes[num].attributes.id] = {type: my_xml.firstChild.childNodes[num].attributes.itype, cost: 0, is_member: false}; 
if(my_xml.firstChild.childNodes[num].attributes.final == "yes"){
b = false;
trace("done");
}
num = num + 1;
}
}

私が抱えている問題は、フラッシュが応答しなくなり、スクリプトを終了するかどうかを尋ねることです.xmlをループして配列に追加するか、誰かがwhileを編集して動作させることができる他の方法はありますか?

4

1 に答える 1

1

コードの構文の一部が正しくありません。XML 形式を更新して処理しやすくし、後で微調整しやすい形式にしました。sample.xml ファイルの各エントリを適切にループするコードを使用して、以下に示すサンプルを作成しました。

サンプル.xml:

<items>
    <item id="1" itype="COLOUR"></item>
    <item id="2" itype="COLOUR"></item>
    <item id="3" itype="COLOUR"></item>
    <item id="4" itype="COLOUR"></item>
    <item id="5" itype="COLOUR"></item>
    <item id="6" itype="COLOUR"></item>
    <item id="7" itype="COLOUR"></item>
    <item id="8" itype="COLOUR"></item>
    <item id="9" itype="COLOUR"></item>
    <item id="10" itype="COLOUR"></item>
    <item id="11" itype="COLOUR"></item>
    <item id="12" itype="COLOUR"></item>
    <item id="13" itype="COLOUR"></item>
    <item id="14" itype="COLOUR"></item>
    <item id="15" itype="COLOUR"></item>
    <item id="16" itype="COLOUR"></item>
    <item id="17" itype="COLOUR"></item>
    <item id="18" itype="COLOUR"></item>
    <item id="19" itype="COLOUR"></item>
    <item id="20" itype="COLOUR"></item>
</items>

アクションスクリプト:

my_xml = new XML();
paper_crumbs = Array();
my_xml.load("sample.xml");
my_xml.onLoad = my_function;
my_xml.ignoreWhite = true;

function my_function() {

    var rootNode:XMLNode = my_xml.firstChild;   // <items> node
    var itemNode:XMLNode = rootNode.firstChild; // get first child from <items>
    var xmlNodeID:Number;
    var xmlNodeType:String;

    while(itemNode != null){

        xmlNodeID = itemNode.attributes.id;
        xmlNodeType = itemNode.attributes.itype;

        paper_crumbs.push( {id: xmlNodeType, type: xmlNodeType, cost: 0, is_member: false} );

        itemNode = itemNode.nextSibling;

    } // end while

} // end function
于 2012-11-18T19:45:40.960 に答える