【问题标题】:Animate imported XML data in Flash with Actionscript 3使用 Actionscript 3 在 Flash 中为导入的 XML 数据制作动画
【发布时间】:2015-10-19 20:15:37
【问题描述】:

我创建了一个简单的动画屏幕显示,它从客户每周可以编辑的 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", 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)......等等。

抱歉,这是一个真正的菜鸟问题,因为这对我来说是全新的。 任何帮助将不胜感激。

祝大家好运

【问题讨论】:

  • 您不能设置文本字段的文本,除非它可用。因此,您可以:在第一帧中为所有文本字段设置文本,然后您可以根据当前帧隐藏/显示适当的文本字段,或者保存数据并在适当的帧中使用它以设置为文本字段文本...

标签: xml actionscript-3 flash


【解决方案1】:

如前所述,您不能设置尚不存在的文本字段(或任何对象)的文本(或任何属性)。因此,您可以将它们留在第 1 帧(或放置 XML 加载脚本的任何位置)并隐藏它们,或者像您当前对 xmlData 所做的那样存储 XML,并在这些文本字段出现的帧上分配文本。

或者您可以将这些东西包装在一个符号中:

  • 将您的 XML 存储在一个变量中,就像您目前对 xmlData 所做的那样。
  • 创建一个符号,将其命名为XMLTextLoader。它应该包含一个动态的TextField,名称如textField
  • 将此XMLTextLoader 符号的实例放置在您想要的任何位置。为它们提供映射到它们将显示的 XML 数据的实例名称,例如 text_mondaytext_tuesday
  • XMLTextLoader 符号的第 1 帧上(或在链接到符号的类中),您可以使用名称来确定要显示的 XML 数据:

var xmlName:String = this.name.split("_")[1]; // Ex: "text_monday" => "monday"
var xml:XML = parent.xmlData[xmlName];
this.textField.text = xml;

现在您有了一个可重复使用的类似组件的符号,它可以放置在任何地方,并且可以处理显示 XML 中的文本。它不需要额外的时间线代码,如果你移动它们,它仍然可以工作。

如果您需要显着不同的文本样式(即不能使用单个动态TextField 来表示所有文本),您可以将代码放在外部类文件中,例如XMLTextLoader.as,并创建多个符号具有相同的结构并将它们全部设置为在库中将它们的“基类”设置为XMLTextLoader.as

【讨论】:

    猜你喜欢
    • 2013-05-07
    • 2011-07-13
    • 2011-02-19
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-28
    • 2013-07-31
    相关资源
    最近更新 更多