Composants, panneau de propriétés et héritage

  • warning: array_map(): Argument #2 should be an array in /var/www/titouille.ch/www/modules/system/system.module on line 1050.
  • warning: array_keys() expects parameter 1 to be array, null given in /var/www/titouille.ch/www/includes/theme.inc on line 1845.
  • warning: Invalid argument supplied for foreach() in /var/www/titouille.ch/www/includes/theme.inc on line 1845.
Portrait de titouille

Un point intéressant des formulaires Flash est qu'on peut dériver une classe de la classe de base mx.screens.Form, l'associer à un formulaire et récupérer ainsi les objets associés directement à ce dernier.

Lorsqu'un formulaire est associé à la classe mx.screens.Form, il propose par défaut les propriétés "autoLoad", "contentPath" et "visible", qui servent respectivement à choisir le mode de chargement du formulaire, son contenu ainsi que sa visibilité au lancement de l'application.

Malheureusement, à partir du moment ou on dérive notre propre classe de la classe mx.screens.Form :

class myClass extends mx.screens.Form

et qu'on associe celle-ci au formulaire (en passant par le panneau des propriétés, onglet "Propriétés") l'inspecteur de propriété, onglet "Paramètres", ne présente cette fois-ci plus les propriétés standard. la liste est vide.

C'est la classe mx.screens.Form qui génère l'affichage des propriétés standard. Ainsi, pour pouvoir utiliser ces propriétés dans l'inspecteur de propriétés avec une classe héritée de la classe Form, il faut simplement utiliser la balise [Inspectable] et insérer les lignes suivantes à l'intérieur de la classe dérivée :

[Inspectable (defaultValue=true variable="visible" type=Boolean name="visible")]
[Inspectable (defaultValue="" variable="contentPath" type=String name="contentPath")]
[Inspectable (defaultValue=true variable="autoLoad" type=Boolean name="autoLoad")]

ces trois lignes me permettent d'afficher les propriétés de la classe mère, en associant le nom de la propriété avec la propriété "variable".

Cette astuce fonctionne avec les formulaires, mais également avec n'importe quelle classe dérivée d'une classe mx. Toujours intéressant à savoir, pour pouvoir afficher les propriétés d'une classe dérivée, quelle qu'elle soit.