2010-08-16 7 views
0

J'essaie de visualiser les résultats d'un quiz dans ActionScript 3.0. Ce que je voudrais savoir, c'est comment lier au mieux les "filtres" (en haut à droite de l'image ci-jointe) à la source de données de manière flexible par OOP.Logique de visualisation ASO OOP - Filtres de liaison et source de données

Le tableau des résultats contient à présent le nombre de réponses correctes et de métadonnées concernant la personne qui répond au questionnaire. Les métadonnées peuvent être à la fois discrètes (sexe) ou continues (âge).

results = [{name: "Lisa", correct: 5, sexe: 0, âge: 52}, {nom: "Peter", correct: 3, sexe: 1, âge: 32} ...]

Comment puis-je dire aux cases, par exemple, de changer de couleur lorsque je change de filtre? Est-ce que chaque objet boîte devrait contenir ses propres données ou devrait-il y avoir une sorte de contrôleur écoutant l'objet filtre pour envoyer un événement, puis appeler une méthode box.setColor? Quelles sont mes options?

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

Répondre

0

Je pense que l'idée générale serait de garder les choses aussi flexible que possible, aujourd'hui, vous souhaitez utiliser la visualisation de type boîte , demain vous voudrez peut-être un autre type. Avoir chaque boîte contenant des données semble assez rigide car cela ne vous donne qu'une seule option. Je voudrais essayer de garder la logique aussi séparée de la vue que possible avec une classe qui gère l'analyse des données et une autre classe ou un ensemble de classes qui ne connaîtrait rien des données et afficherait simplement des boîtes de couleurs, camemberts, graphiques 3D etc ...

0

Je voudrais tout d'abord créer un StudentBox de classe qui détient chaque donnée étudiants et a une méthode appelée changeColor qui accepte une couleur et change la couleur de StudentBox à celle de la passé en couleur. Ensuite, je créerais un tableau ou un vecteur dans AS3 qui contient tous les élèves que vous avez créés.

Après cela, vous ajoutez un écouteur aux boutons de filtre pour détecter quand on clique dessus et de les appeler une fonction qui effectue les opérations suivantes:

1) boucle à travers tous les StudentBoxes dans le tableau contenant chaque StudentBox

2) pour chaque StudentBox boucle vous à travers, changer la couleur de la StudentBox en fonction de son filtre