使用Actionscript 3在Flash中为导入的XML数据制作动画
我创建了一个简单的动画屏幕,它从xml文档中导入7个不同的文本值,客户机每周都可以编辑这些值 我在flash中使用的代码如下:使用Actionscript 3在Flash中为导入的XML数据制作动画,xml,actionscript-3,flash,Xml,Actionscript 3,Flash,我创建了一个简单的动画屏幕,它从xml文档中导入7个不同的文本值,客户机每周都可以编辑这些值 我在flash中使用的代码如下: var xmlData:XML = new XML(); var theURL_ur:URLRequest = new URLRequest("ClientText.xml"); var loader_ul:URLLoader = new URLLoader(theURL_ur); loader_ul.addEventListener("complete", fileL
var xmlData:XML = new XML();
var theURL_ur:URLRequest = new URLRequest("ClientText.xml");
var loader_ul:URLLoader = new URLLoader(theURL_ur);
loader_ul.addEventListener("complete", fileLoaded);
function fileLoaded(e:Event):void
{
xmlData = XML(loader_ul.data);
m_txt.text = xmlData.monday;
tu_txt.text = xmlData.tuesday;
w_txt.text = xmlData.wednesday;
th_txt.text = xmlData.thursday;
f_txt.text = xmlData.friday;
}
我把这段代码放在我的动作层的第1帧上,并在第2层添加了7个单独的动态文本框,标有相应的实例名称
在导出所有作品时,使用链接的xml文档中的指定文本填充所有7个文本框
我遇到的问题是,除非所有文本框都在第1帧上,否则它们不会显示
我试图在第20帧显示文本框1(m_-txt),然后在第40帧显示文本框2(tu_-txt),然后在第60帧显示文本框3(w_-txt),以此类推
道歉,因为这是一个真正的noob问题,因为这对我来说是全新的。
任何帮助都将不胜感激
Cheers all如上所述,您不能设置尚未存在的文本字段(或任何对象)的文本(或任何属性)。因此,您可以将它们放在第1帧(或放在XML加载脚本的任何位置)并隐藏它们,或者像当前使用
xmlData
一样存储XML,并在这些文本字段出现的帧上指定文本
或者你可以用一个符号来包装这些东西:
- 将XML存储在变量中,就像当前使用
所做的那样xmlData
- 创建一个符号,称之为
。它应该包含一个名为XMLTextLoader
的动态TextField
TextField
- 将此
符号的实例放置在您需要的任何位置。为他们提供映射到他们将显示的XML数据的实例名称,例如XMLTextLoader
和text\u monday
text\u tuday
- 在
符号的第1帧上(或在链接到符号的类中),可以使用名称来确定要显示的XML数据:XMLTextLoader
现在您有了一个可重用的组件,比如符号,它可以放在任何地方,它将处理显示XML中的文本。它不需要额外的时间线代码,如果你移动它们,它仍然可以工作
如果您需要显著不同的文本样式(即单个动态
TextField
不能用于表示所有文本),您可以将代码放入外部类文件中,例如XMLTextLoader.as
,并创建相同结构的多个符号,并将它们都设置为具有“基类”在库中设置为XMLTextLoader.as
除非文本字段可用,否则无法设置文本字段的文本。因此,您可以:在第一帧中为所有文本字段设置文本,然后根据当前帧隐藏/显示相应的文本字段,或者保存数据,并在适当的帧中使用它来设置文本字段文本。。。
var xmlName:String = this.name.split("_")[1]; // Ex: "text_monday" => "monday"
var xml:XML = parent.xmlData[xmlName];
this.textField.text = xml;