2010-08-16 58 views
0

我試圖在ActionScript 3.0中可視化測驗的結果。
我想要的一些輸入是如何以靈活的OOP方式將「過濾器」(附圖中的右上角)與數據源最好地聯繫起來。AS3 OOP可視化邏輯 - 鏈接過濾器和數據源

結果數組現在包含正確答案的數量和有關參加測驗的人員的元數據。元數據可以是離散的(性別)或連續的(年齡)。

results = [{name:「Lisa」,correct:5,sex:0,age:52},{name:「Peter」,correct:3,sex:1,age:32} ...]

如何告訴箱子,例如,當我更換過濾器時更改顏色? 每個box對象應該保存自己的數據,還是應該有某種控制器監聽過濾器對象來調度事件,然後調用box.setColor方法? 我有什麼選擇?

alt text http://j.imagehost.org/0002/index.png

回答

0

我覺得一般的想法是讓事情儘可能的靈活每個StudentBox你循環,今天你要使用的箱式可視化,明天你可能需要另一種類型。要讓每個包含數據的盒子對象看起來都非常嚴格,因爲它只給出一個選項。我會盡量保持與視圖分離的邏輯儘可能與一個處理數據解析的類以及另一個類或一組不知道數據的類相關,並且只顯示顏色框,餅圖,3D圖形etc ...

0

我會首先創建一個類StudentBox保持各學生的數據,並有一個名爲changeColor方法,它接受一種顏色,改變StudentBox顏色,在顏色傳遞的。然後我會在AS3中創建一個數組或矢量,它包含您創建的所有學生。

這之後,您將添加一個偵聽過濾器按鈕來檢測被點擊時,他們並讓他們調用一個函數,它執行以下操作:

1)循環遍歷數組中的所有StudentBoxes抱在一起StudentBox

2)通過,改變StudentBox取決於它的過濾器顏色