我正在尝试从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的新手。但我在网上搜索过,没有找到任何与我的问题相关的答案。所以任何帮助都会非常感激。
答案 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。