D'après ce que je comprends, la liaison à un var dans ActionScript est effectuée via des événements qui sont déclenchés automatiquement quand un var est modifié. Je ai quelques questions à ce sujet:Comment fonctionne la liaison dans ActionScript?
- Que se passe-t-il si la classe ne s'étend pas explicitement EventDispatcher? Y a-t-il une sorte de magie qui se passe dans le compilateur qui fait essentiellement de la classe un EventDispatcher?
- Comment fonctionne la liaison aux vars statiques? Une sorte de fonction addEventListener() statique implicite est-elle ajoutée à la classe?
- J'ai remarqué que vous pouvez mettre [Bindable] sur des vars statiques mais pas des fonctions statiques, pourquoi?
Edit:
Merci à Christophe Herreman pour sa réponse éclairante. Cependant, j'ai quelques suites de mes questions ci-dessus. Je me demande si quelqu'un pourrait combler les lacunes pour moi (j'ai essayé de numéroter ces questions 4, 5, 6 mais ils apparaissent 1, 2, 3 pour une raison quelconque!)
J'ai ajouté l'option -keep au compilateur et j'ai regardé le code de liaison généré. Quelqu'un pourrait-il expliquer comment ce code est appliqué? Le compilateur semble générer une classe appelée BindableProperty pour chaque classe, qui contient le getter et le setter. Comment cela se plie-t-il dans la classe que j'ai écrite? La fonctionnalité ressemble un peu à des classes partielles en C# - est-ce une fonctionnalité de compilateur exclusivement en coulisses, ou est-ce quelque chose que je pourrais utiliser moi-même?
La classe BindableProperty n'implémente pas explicitement EventDispatcher, comment la classe générée implémente-t-elle la distribution d'événements?
Dans la question 3, j'ai posé une question sur la liaison aux fonctions statiques, mais je voulais dire en fait des fonctions de getter et de setter statiques. Cela ne semble pas être autorisé.
Merci Chris, c'est une explication très utile. – aaaidan