新的Flash 5.5应用程序 - 最佳方法

问题描述:

我有一个新的应用程序项目,并想知道,在我开始之前,什么可能是一种很好的方式来组织数据。新的Flash 5.5应用程序 - 最佳方法

这个想法是一个提供日常问题的应用程序,问题每天都有所不同。 365个问题可以存储在一个文本文件中,我一直在将XML文件加载到Flash中并显示结果。

将问题存储在一个简单的文本文件中并加载到Flash(使用URL加载器)或XML文件会更好吗?

XML文件可能有助于让'day'信息可用,但可能有更好的方式让应用程序显示每天的正确问题。

我工作的那个“问题1”与“1一天的一致(年度)

请问这种做法是否有意义,或者是有没有更好的方式来对脚本可用的工作问题用?

你需要的一件事就是找出今年的哪一天。这里没有原生的Flash API,所以你不得不推出自己的Flash API。请注意,您需要366个问题才能让您的应用在闰年上运行。

至于是否使用文本文件或XML,取决于您和您感觉更舒适。 AS3的XML API功能强大,如果你从Flash开始,这可能是一个很好的选择。

+0

闰年的好点;谢谢。我将使用XML,我喜欢能够以结构化方式添加附加项的想法。 – Stephen 2012-07-30 21:46:46

XML将使数据模型对您的目标直观。

<?xml version="1.0" encoding="UTF-8"?> 
<questions> 
    <question day="1"><![CDATA[ <b>Question 1</b>: Lorem ipsum dolor sit amet. ]]></question> 
    <question day="2"><![CDATA[ <b>Question 2</b>: Consectetur adipiscing elit. ]]></question> 
    <question day="3"><![CDATA[ <b>Question 3</b>: Duis semper risus nec nisi elementum. ]]></question> 
</questions> 

在ActionScript中,获得当年的当天可以实现为:

public static function getDayOfTheYear(d:Date):uint { 
    var firstDay:Date = new Date(d.getFullYear(), 0, 1); 
    return (d.getTime() - firstDay.getTime())/86400000; 
} 

一旦XML被装载,就可以使用E4X来获得当前问题的节点:

var now:Date = new Date(); 
var day:uint = getDayOfTheYear(now); 

/* Assuming you loaded XML to a variable: var xml:XML */ 
var question:XMLList = xml.question.(@day == day); 
trace(question.valueOf()); 
+0

非常感谢您的快速响应。我有加载XML部分工作,并将重新应用这些想法:日期。欢呼声 – Stephen 2012-07-30 21:40:43

+0

我有这个工作,并在舞台上显示一个问题,与一年中的某一天有关(谢谢你的DOY代码@Jasons)。很有趣,在我意识到XML文件的第1天,第2天等等,并且我们到了第212天之前,我无法显示任何东西。因此,看到结果很好。 – Stephen 2012-08-01 08:41:39