新的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开始,这可能是一个很好的选择。
答
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());
闰年的好点;谢谢。我将使用XML,我喜欢能够以结构化方式添加附加项的想法。 – Stephen 2012-07-30 21:46:46