如何加载xml数据并在AS3中的多个帧中显示它

时间:2012-05-25 17:03:26

标签: xml actionscript-3 flash

我正在尝试从xml文件加载数据,将它们加载到数组中,并在动态文本字段中的不同帧中显示这些数组中的单词。因此,例如,WordArray [0]将在DynText文本字段中显示两个帧。在此演示文稿之后,WordArray [1]将在同一文本字段中显示四个帧,然后KeyWordArray [0]将在同一文本字段中显示一个帧等。

这是我到目前为止的代码:

var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
xmlLoader.load(new URLRequest("file2.xml"));

function LoadXML(e:Event):void {
xmlData = new XML(e.target.data);
ParsePass(xmlData);
}

var WordArray:Array = new Array();
var KeyWordArray:Array = new Array();

function ParsePass(passInput:XML):void {
var WordAll:XMLList = passInput.Pass.Word.text();
var PrimeAll:XMLList = passInput.Pass.Keyword.text();

for (var i in WordAll) {
    WordArray.push(WordAll[i]);
}
for (var p in PrimeAll) {
    KeyWordArray.push(PrimeAll[p]);
}

}

我能够加载xml数据,将其放入数组中并使用以下方法在动态文本字段的第一帧中显示WordArray [0]:

DynText.text = WordArray[0];

但不在其他框架中。我试图在ParsePass函数中调用函数,但它似乎不起作用。 如果这是一个基本问题,我很抱歉。我是AS3的新手。但我在网上搜索过,没有找到任何与我的问题相关的答案。所以任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

在此处阅读有关解析XML的信息:XML Basics

要在帧上添加各种数据,请尝试使用addFrameScript();

您可以将代码添加到特定框架,以将数据加载到位于该框架上的容器。 或者另一种解决方案是在所有帧上使用相同的容器,但根据帧号动态加载数据。

编辑:

MyMC.addEventListener(Event.ENTER_FRAME, OnEnterFrameHandler);
function OnEnterFrameHandler(e:Event):void
{
   switch(e.target.currentFrame)
   {
       case 1: TextBox.text = WordArray[0];
               break;
       case 3: TextBox.text = WordArray[1];
               break;
       case 5: TextBox.text = WordArray[2];
               break;
   }
}

另请注意,在Flash框架中,枚举从1开始,并确保使用stop()方法停止所需框架上的MovieClip。