0

我正在尝试从 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 的新手。但我在网上搜索并没有找到任何与我的问题相关的答案。因此,任何帮助将不胜感激。

4

1 回答 1

0

在此处阅读有关解析 XML 的信息:XML 基础知识

要在帧上添加各种数据,请尝试使用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。

于 2012-05-25T17:36:01.383 回答