Présentation du langage

Les objets sont au centre du langage ActionScript 3.0 : ils constituent ses éléments fondamentaux. Chaque variable que vous déclarez, chaque fonction que vous écrivez et chaque instance de classe que vous créez est un objet. Un programme ActionScript 3.0 peut être comparé à un groupe d'objets qui effectuent des tâches, répondent à des événements et communiquent entre eux.

Les programmeurs qui maîtrisent la programmation orientée objet dans Java ou C++ peuvent considérer les objets comme des modules contenant deux types de membres : les données enregistrées dans des variables de membre ou des propriétés, et le comportement accessible via des méthodes. La version 4 d'ECMAScript, la norme sur laquelle est basée ActionScript 3.0, définit des objets de façon presque identique. Dans la version d'ECMAScript, les objets sont simplement des ensembles de propriétés. Ces propriétés sont des conteneurs pouvant contenir non seulement des données, mais également des fonctions ou d'autres objets. Si une fonction est associée à un objet de cette façon, il s'agit d'une méthode.

Alors qu'en théorie, la définition préliminaire d'ECMAScript peut paraître un peu étrange pour les programmeurs ayant l'habitude d'utiliser le langage Java ou C++, en pratique, la définition de types d'objets avec des classes ActionScript 3.0 est très semblable à la façon dont les classes sont définies dans Java ou C++. Il est important de distinguer les deux définitions d'objet lors de la présentation du modèle d'objet ActionScript et d'autres rubriques plus techniques, mais généralement, le terme propriétés fait référence à des variables de membre de classe, par opposition aux méthodes. La Référence du langage et des composants ActionScript 3.0, par exemple, utilise le terme propriétés pour des variables ou des propriétés de lecture/définition. Il utilise le terme méthodes pour des fonctions faisant partie d'une classe.

Une légère différence entre les classes dans ActionScript et les classes dans Java ou C++ réside dans le fait que dans ActionScript, elles ne sont pas que des entités abstraites. Les classes ActionScript sont représentées par des objets de classe qui stockent les méthodes et les propriétés de la classe. Ainsi, des techniques pouvant sembler étranges pour les programmeurs de Java et C++ comme l'insertion d'instructions ou de code exécutable au niveau supérieur d'une classe ou d'un package sont autorisées.

Une autre différence entre les classes ActionScript et les classes Java ou C++ réside dans le fait que chaque classe ActionScript possède un objet prototype. Dans les versions précédentes d'ActionScript, les objets prototypes, liés les uns aux autres en chaînes de prototypes, servaient de base à l'ensemble de la hiérarchie d'héritage de classe. Dans ActionScript 3.0, néanmoins, les objets prototypes ne jouent qu'un rôle mineur dans le système d'héritage. Cependant, l'objet prototype peut toujours être utile comme solution de rechange aux méthodes et aux propriétés statiques si vous souhaitez partager une propriété et sa valeur parmi toutes les instances d'une classe.

Auparavant, les programmeurs ActionScript expérimentés pouvaient manipuler directement la chaîne du prototype avec des éléments de langage intégrés spéciaux. Maintenant que le langage fournit une implémentation plus avancée d'une interface de programmation basée sur des classes, un grand nombre de ces éléments de langage spéciaux (__proto__ et __resolve,, par exemple) ne font plus partie du langage. De plus, les optimisations du mécanisme d'héritage interne qui améliorent nettement les performances de Flash Player empêchent d'accéder directement au mécanisme.


Flash CS3

 

M'envoyer un message électronique lorsque des commentaires sont ajoutés à cette page | Rapport de commentaire

Page en cours: http://livedocs.adobe.com/flash/9.0_fr/main/00000038.html