2012-07-30 42 views
2

我有一個新的應用程序項目,並想知道,在我開始之前,什麼可能是一種很好的方式來組織數據。新的Flash 5.5應用程序 - 最佳方法

這個想法是一個提供日常問題的應用程序,問題每天都有所不同。 365個問題可以存儲在一個文本文件中,我一直在將XML文件加載到Flash中並顯示結果。

將問題存儲在一個簡單的文本文件中並加載到Flash(使用URL加載器)或XML文件會更好嗎?

XML文件可能有助於讓'day'信息可用,但可能有更好的方式讓應用程序顯示每天的正確問題。

我工作的那個「問題1」與「1一天的一致(年度)

請問這種做法是否有意義,或者是有沒有更好的方式來對腳本可用的工作問題用?

回答

1

你需要的一件事就是找出今年的哪一天。這裏沒有原生的Flash API,所以你不得不推出自己的Flash API。請注意,您需要366個問題才能讓您的應用在閏年上運行。

至於是否使用文本文件或XML,取決於您和您感覺更舒適。 AS3的XML API功能強大,如果你從Flash開始,這可能是一個很好的選擇。

+0

閏年的好點;謝謝。我將使用XML,我喜歡能夠以結構化方式添加附加項的想法。 – Stephen 2012-07-30 21:46:46

2

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

相關問題