ActionScript 2 XML问题

时间:2010-11-23 11:07:56

标签: xml flash actionscript actionscript-2

XML

<?xml version="1.0"?>
<rtv version="1" time="1290508867">
  <genres>
    <genre en="Action">1</genre>
    <genre en="Adventure">2</genre>
    <genre en="Animation">3</genre>
    <genre en="Comedy">4</genre>
    <genre en="Crime">5</genre>

    <genre en="Disaster">6</genre>
    <genre en="Documentary">7</genre>
    <genre en="Drama">8</genre>
    <genre en="Eastern">9</genre>
    <genre en="Erotic">10</genre>
    <genre en="Family">11</genre>

    <genre en="Fan Film">12</genre>
    <genre en="Fantasy">13</genre>
    <genre en="Film Noir">14</genre>
    <genre en="History">15</genre>
    <genre en="Holiday">16</genre>
    <genre en="Horror">17</genre>

    <genre en="Indie">18</genre>
    <genre en="Music">19</genre>
    <genre en="Musical">20</genre>
    <genre en="Mystery">21</genre>
    <genre en="Neo-noir">22</genre>
    <genre en="Road Movie">23</genre>

    <genre en="Romance">24</genre>
    <genre en="Science Fiction">25</genre>
    <genre en="Short">26</genre>
    <genre en="Sport">27</genre>
    <genre en="Sporting Event">28</genre>
    <genre en="Sports Film">29</genre>

    <genre en="Suspense">30</genre>
    <genre en="Thriller">31</genre>
    <genre en="War">32</genre>
    <genre en="Western">33</genre>
    <genre en="Action and Adventure">34</genre>
    <genre en="Reality">35</genre>

    <genre en="Mini-Series">36</genre>
  </genres>
</rtv>

守则

var genresbyID;
var gxml = new XML();
gxml.ignoreWhite = true;
gxml.load(apipath+"?section=genres");
gxml.onLoad = function(success:Boolean):Void {
    var g = XPathAPI.selectNodeList(this.firstChild, "/rtv/genres/genre");
    for(i=0;i<g.length;i++)
    {
        var s = ' '+g[i].attributes.en;
        genresbyID[g[i].childNodes[0].nodeValue*1] = s;
    }
    trace('|'+genresbyID[1]);
};

预期产出:

Action

实际输出:

(nothing)

我真的坚持这个。 :( 有谁知道问题是什么?

1 个答案:

答案 0 :(得分:0)

您可以对代码进行一些改进,但为了不混淆问题,我会忽略这些改进。您需要将genresbyID初始化为Array或Object。看起来Array会对你有用。

var genresbyID:Array = new Array();