Rss Feed

Observer les changements d’une variable

Vous souhaitez effectuer une action dès lors qu’une variable est modifiée ? Rien de plus simple grâce à la classe « ChangeWatcher« , littéralement « Surveillant de changement », et particulièrement grâce à la méthode statique watch().

Les paramètres minimum à lui passer sont les suivants :

host -> l’objet qui contient la variable. Si vous êtes dans un mxml, l’objet sera « this »,

chain -> la variable ou la chaine de variable que vous souhaitez surveiller,

handler -> la fonction à appeler en cas de changement.

Il est de bon ton de tester avant si la variable est surveillable, à l’aide de la fonction statique canWatch() qui reprend les mêmes paramètres que la fonction watch() à l’exception de l’handler. Elle retourne un bool, et en cas d’une réponse positive, on peut lancer la surveillance.

Voici donc une méthode rapide et efficace de bind.

Partager :
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay
  • LinkedIn
  • Technorati
  • Twitter

Articles sur le même sujet :

  1. Pseudo comportement synchrone en flex
  2. ColdFusion, déclaration d’une variable et affichage.
  3. Empécher la mise à jour d’un ArrayCollection

Commentaires

  1. myrddin says:

    Bonjour,

    Il n’est pas plus facile et surement moins gourmand de simplement implémenter un getter et setter pour la variable en question ?

  2. ekameleon says:

    Hello :)

    +1 :)

    EKA+ :)

  3. Matsiya says:

    Oui et non, dans le cadre d’une variable de classe, ok, un getter/setter est simple à mettre en place.
    Mais voici quelques exemples qui rendent l’utilisation d’un getter/setter impossible et/ou pas pratique:

    1°) Si on est dans une classe (C1), qui contient des instances d’autres classes (C2, C3), et si l’on souhaite écouter le changement d’une des propriétés de ces instances, sans pour autant déclencher une action lorsque l’on instancie C2 ou C3 en dehors de C1.

    2°) Enfin dans le cas où l’ont veut appeler toujours la même fonction lors de la modification de plusieurs variables (variables, ou variables d’instances) de notre classe, l’utilisation de getter/setter est là encore pas pratique (et rajoute plein de code pour pas grand chose), et rend très très pratique (expérience vécue :p) l’utilisation de ChangeWatcher.

  4. switcherdav says:

    Excellent,

    Pile poil ce que je cherchais pour déclencher une fonction dans ma petite application de films

Laisser un commentaire

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word