Outils pour utilisateurs

Outils du site


cours2009:multimedia:projet_basique_boutons_desactivables

Projet basique : désactivation d'un bouton

La mise en oeuvre de ce TP requiert que vous ayez fait le TP sur la mise en place de SWFAddress.

Le but de ce projet est de vous montrer que l'usage des événements peut rendre simples certaines fonctionnalités.

Présentation

L'exemple, qui servira de support, est le signalement de la page affiché par un changement de l'état du bouton correspondant. On parlera d'activation et désactivation du bouton.

  • Actif : on peut utiliser le bouton, car on est sur une autre page.
  • Inactif : on ne peut utiliser le bouton, car on est sur cette page. Le graphisme spécifique le signale.

Pour mettre en oeuvre cette fonctionnalité, on peut imaginer de la réaliser lors du changement de page :

  • On active le bouton qui correspond à la page que l'on va retirer.
  • On désactive le bouton qui correspond à la page que l'on va afficher.

Cette démarche présente plusieurs inconvénients :

  • On mélange la logique de changement de page avec celle d'activation des boutons.
    • Il est préférable qu'un objet ne fasse qu'une chose (mais la fasse bien).
  • On doit associer les pages aux boutons alors que c'est l'inverse :
    • Un bouton sait quelle page afficher (plusieurs boutons peuvent mener à la même page).
      • On peut arriver à une page par différents moyens.

Ce TP nécessite SWFAddress, car il offre une solution à ce problème :

  • On demande à SWFAddress de changer l'URL : ”SWFAddress.setValue(”…”)
  • SWFAddress signale que l'adresse a changé par l'événement : ”SWFAddressEvent.CHANGE

Or tous ceux qui sont intéressés par un événement peuvent se tenir informés en s'y abonnant !

On va demander aux boutons du menu d'écouter les événements de changement de page (SWFAddress.setValue(”…”)) pour qu'ils ajustent leurs états en conséquence (active(); /*ou*/ desactive();).

Cette méthode est généralisable à tous éléments de l'interface qui devraient réagir suite à une navigation.

Gestion des événements de navigation

Le travail va se faire sur la Classe de base des boutons. Ceux-ci connaissent (l'adresse de) la page qu'ils doivent afficher par le biais de leur propriété name (le nom d'occurrence).

On va mettre en place un gestionnaire d'événement dans le constructeur des boutons du menu :

Reste à écrire la méthode du gestionnaire d'événement qui devra :

  • Extraire le nom de la nouvelle page demandée (de la propriété value de l'événement).
  • Comparer ce nom au nom de la page associé au bouton (propriété name).
    • S’ils sont identiques : désactiver le bouton.
    • S’ils sont différents : activer le bouton.

Remarque : il existe un petit problème. SWFAddress ajoute un ”/” devant les noms de pages demandés. Il faut donc le retirer. La méthode substring de la Classe String permets de le faire.

Il ne reste qu'à écrire les méthodes active et desactive . Les créer est placer dedans un simple trace(”…”) pour l'instant.

Tester le bon fonctionnement en utilisant l'application et visualisant les messages d'activation/désactivation des boutons.

Poursuivre avec le TP : boutons à 3 états.

cours2009/multimedia/projet_basique_boutons_desactivables.txt · Dernière modification: 2010/05/14 22:00 (modification externe)