La POO et ActionScript 3 · Programmation ActionScript 3.0. DUT MMI 2 - Programmation objet et...

47
La POO et ActionScript 3 Programmation objet et événementielle - S3 Culture technologique et développement multimédia : maîtrise DUT 2 Métiers du Multimédia et de l’Internet D2ME63 - L. Capocchi

Transcript of La POO et ActionScript 3 · Programmation ActionScript 3.0. DUT MMI 2 - Programmation objet et...

  • La POO et ActionScript 3Programmation objet et événementielle - S3

    Culture technologique et développement multimédia : maîtriseDUT 2 Métiers du Multimédia et de l’InternetD2ME63 - L. Capocchi

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Sommaire

    ● La Programmation Orientée Objet (POO) et événementielle avec le langage ActionScript 3.0○ Introduction à la POO○ Classification et enchaînement des événements○ Concepts de programmation○ Programmation ActionScript 3.0

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Introduction à la POO

    ● Qu’est ce que la POO○ La programmation orientée objet (POO) fait ses débuts en 1962

    avec l’apparition de SIMULA et SmallTalk au début des années 70.

    ○ Les langages orientés objets sont une nouvelle méthode de programmation qui tend à se rapprocher de notre manière naturelle d’appréhender le monde.

    ○ Au coeur de la POO, un élément tout simple : l’objet.○ Un objet est la représentation d’une entité dans un système.

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Introduction à la POO

    ● Qu’est ce que la POO○ La programmation procédurale consiste à décrire

    successivement des instructions qui seront exécutées dans un ordre précis.

    ○ La POO s’oppose donc à la programmation procédurale.○ Dans un système orienté objet, les instructions sont décrites à

    l’intérieur d’objets réagissant à des événements et exécutant des méthodes.

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Introduction à la POO● Programmation procédurale (ou fonctionnelle)

    ○ code à rallonge difficile à déboguer● La POO a été introduit pour faciliter l’interaction entre les

    utilisateurs dans une application.● La POO est une manière de voir un problème particulier sous

    un angle de décomposition en pièces élémentaires appelées “objets”.○ exemple de la voiture (objet) :

    ■ vue comme un moyen de déplacement,■ vue comme un assemblage d'organes mécaniques,■ etc.

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Introduction à la POO● Classes et objets

    ○ Une classe est une description d’un ensemble de services et de données.

    ○ Les classes exposent un certain nombre de services sans pour autant décrire la manière dont elles fonctionne en interne.

    ○ La représentation d’une classe estune objet qui réalise les serviceset les données de la classe.

    ○ Un objet est une instance de la classe.

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Introduction à la POO● Les objets

    ○ L’objet est une représentation conceptuelle d’un élément dans un système, une application multimédia par exemple.

    ○ Dans Flash, il existe plusieurs éléments (boutons, clips, boîte de texte, couleurs, etc.) : ce sont tous des objets.

    ○ En fait, tout ce avec quoi nous pouvons interagir par programmation dans Flash est un objet.

    ○ Un objet est un élément modelable et réutilisable, calqué sur un éléments du monde réel, programmé pour accomplir certaines fonctions et pour jouer certains rôles.

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Introduction à la POO● Les classes

    ○ Les objets sont d’abord des idées, puis des concepts et des modèles.○ Comme dans un casse-tête, on assemble une à une les pièces qui

    formeront un tout.○ Cela se fait selon une méthodologie, un plan. Ce plan, c’est la

    définition de classe.○ La définition de classe décrit ce que l’objet pourra et devra faire,

    et les données qu’il devra utiliser.○ Le développement orienté objet consiste donc à concevoir une

    application formée de plusieurs objets en interaction les uns avec les autres, chacun avec un rôle bien défini.

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Introduction à la POO● Les avantages de la conception orientée objet

    ○ La facilité des systèmes orientés objet à s'adapter peut ainsi réduire considérablement ces coûts.

    ○ Les trois avantages importants de la POO sont:■ L'extensibilité: Un objet peut être réutilisé dans plusieurs applications.■ la réutilisabilité: Si un objet peut être réutilisé dans d'autres projets, il n'a

    pas à être reprogrammé et testé à nouveau.■ L'adaptabilité: Un objet qui peut facilement être adapté à différentes

    situations ou à différents projets réduit le besoin de nouveaux développements, réduisant ainsi le temps passé à développer l'application et l'argent investi.

    ○ La POO clarifie les étapes de développement et réduit les possibilités de faire du code en spaghetti.

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Introduction à la POO● Les étapes de développement

    ○ La POO consiste à regrouper au sein d'une classe les opérations et les données d'un objet.

    ○ La modélisation objet consiste à créer un modèle du système en rassemblant des éléments du domaine que l'application servira.

    ○ L'analyse orientée objet ou OOA consiste à définir ces éléments sous forme de types, indépendamment de leur implémentation.

    ○ On propose ensuite des solutions techniques pour représenter les éléments dans l'application informatique en concevant un modèle de conception. C'est la conception orientée objet ou OOD.

    ○ Le développeur peut ensuite construire l'application à l'aide d'un langage de programmation. C'est la programmation orientée objet ou POO.

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Introduction à la POO● Propriétés

    ○ Les propriétés permettent de rendre unique un objet.○ Par exemple, la classe d’un objet représentant une balle peut être

    utilisée pour créer plusieurs instances et donc plusieurs balles.○ Cependant, toutes les balles sont différentes. ○ En POO, il faut d’abord créer les classes qui offrent des

    comportements prédéfinit basés sur des données.○ Ensuite, il faut créer des objets à partir de ces

    classes pour les manipuler de manièreindividuel car ils possèdent des propriétés particulières.

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Introduction à la POO● Encapluslation

    ○ Lorsque vous entrez dans une voiture pour la conduire, vous tournez la clé et la voiture démarre. Les concepteurs de voitures vous cachent volontairement les aspects mécaniques de votre véhicule et vous laisse la liberté de vous concentrer sur autre chose pendant que vous roulez.

    ○ En POO, cela s’appelle l’encapsulation○ Avec l’encapsulation, les classes cachent leurs détails internes.○ Les utilisateurs (vous, d’autres développeurs ou une autre application)

    n’ont pas besoin de savoir comment la classe fonctionne.○ Les utilisateurs d’une classe ont besoin de connaître ses services et

    comment y accéder.

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Introduction à la POO● Encapluslation

    ○ La constructions des classes est un processus abstrait :■ à l’origine, un problème complexe■ qui est réduit en une liste de services connexes,

    ○ L’encapsulation simplifie le développement d’application et augmente la réutisabilité du code.

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Introduction à la POO

    ● Encapluslation○ Exemple :

    L’encapsulation cache (conceptuellement ) volontairement le détail du service à l’utilisateur

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Introduction à la POO

    ● Le polymorphisme○ Lorsque le pompiste vous approvisionne en gasoil, il n’a pas besoin

    de connaître la marque de votre voiture. Il approvisionne de la même manière toutes les voitures fonctionnant au diesel.

    ○ Le pompiste peut répéter son acte pour chaque voiture indépendamment de sa marque.

    ○ La POO nomme ce concept le polymorphisme.○ Le polymorphisme permet d’avoir plusieurs objets exposant les

    mêmes propriétés mais de différente manière.

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Introduction à la POO

    ● Le polymorphisme○ exemple : la classe Citrus (agrume)

    peut prendre la forme d’une orange, d’un citron

    ou d’un pamplemouseavec la propriété juice

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Introduction à la POO

    ● L’héritage○ Le concept de l’héritage en POO est basé

    sur le principe bien connu qui consiste à ne pas réinventer une roue.

    ○ Le principe est donc de réutiliser une classe (sans la modifier) en lui ajoutant de nouvelles propriétés ou fonctionnalités pour en obtenir une nouvelle (par héritage).

    ○ Exemple : un pneu et un type de roue

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Introduction à la POO

    ● Les interfaces○ Les piliers de la programmation sont : l’encapsulation, l’héritage et

    le polymorphisme○ Une interface permet de spécifier une classe de manière stricte en

    imposant les signatures de ses méthodes et de ses propriétés. ○ Considérons comme précédemment :

    ■ qu’une classe représente un plan de construction d’une maison (plan d'architecte),

    ■ un object instancié à partir de la classe et donc une maison et ■ une interface serait alors le contrat signé entre le propriétaire de la

    future maison et l’architecte.

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Introduction à la POO

    ● Les interfaces○ L’interface ne contient pas le code des spécifications attendues par

    la classe.○ Pour être valide, une classe qui implémente une interface doit

    obligatoirement implémenté les méthodes exposées par l’interface.○ Les interfaces imposent la définition des propriétés de classe

    suivantes :■ Le rayon d’action des méthodes (public)■ Le nom des méthodes■ Les paramètres des méthodes et leur type■ Les types des objets retournés par les méthodes

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Introduction à la POO

    ● Les interfaces○ Les interfaces sont utilisées par le compilateur pour valider le code

    et sont utiles lorsque l’on veut implémenter l’API d’une classe.○ Utile dans le cas ou des classes utilisent le polymorphisme car dans

    ce cas, les interfaces forcent les classes à implémenter les méthodes spécifiques et à utiliser la même convention de nom.

    ○ Elles peuvent être utilisé comme type de données : si plusieurs classes filles héritent d’une même classe mère et que vous avez une méthode qui possède un paramètre pouvant être une instances des classes filles, si les classes filles implémentent une interface, le type du paramètre de la méthode peut être l’interface.

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Introduction à la POO

    ● Les interfaces○ En AS3 une interface est implémenté dans un fichier .as qui porte le

    même non que l’interface.○ Définition de l’interface IMyInterface

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Introduction à la POO

    ● Les interfaces○ Exemple d’une interface pour une application e-commerce :

    ○ Attention contrairement à l’héritage, une classe peut implémenter plusieurs interfaces séparées par une virgule après “implements”.

    implémente

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Sommaire

    ● Introduction à la POO● Classification et enchaînement des événements● Concepts de programmation● Programmation ActionScript 3.0

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Classification et enchaînement des événements

    ● Classification des évènements○ Les événements sont utilisé comme « déclencheur » dans tous les

    langages (au moins structurés: VB, javascript, ActionScript...)○ Association : Événements (messages) / Actions (portions de code)○ Lorsqu'un clic de souris à lieu on doit exécuter telle ou telle action○ Exemple de couple événement/action :

    ■ Clic (action) sur un lien dans une page web provoquant dans le navigateur un saut vers une autre page.

    ■ Clic (action) sur un menu dans un logiciel qui déclenche son déroulement.

    ○ Classification des événements:➢ Ce qui cause les événements.➢ Leur existence dans le temps.

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Classification et enchaînement des événements

    ● Classification des évènements : cause des événements !○ Distinction des événements qualifiés :

    ■ « d'utilisateur »: provoqué par l'utilisateur,■ « système »: provoqué par la machine.

    ○ En Flash l'événement système ENTER_FRAME à lieu à chaque fois que la tête de lecture sort d’une frame.

    ○ Pour le concepteur :■ Si action provoquée par l'utilisateur (interaction): association de ces

    actions à des événements « utilisateur ».■ Si action provoquée par le système (interne): association de ces actions

    à des événements « système ».

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Classification et enchaînement des événements

    ● Classification des évènements : existence des événements dans le temps.○ Le clic d'une souris est un événement qui n'a lieu qu'une seul fois:

    événement unique est instantané.○ L'événement lié au ENTER_FRAME de Flash est répétitif.○ Un événement répétitif très utilisé est le timeOut.○ Les utilités principales des événements répétitifs sont :

    ■ de faire un « moteur » ou,■ de surveiller une variable quelconque.

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Classification et enchaînement des événements

    ● Classification des évènements : Résumé

    ○ Le concepteur devant ordonner différents groupes d'actions se pose les questions suivantes :■ Si les actions doivent avoir lieu toutes seules ou doivent être

    provoquées.■ S'il est nécessaire ou pas de répéter les actions.

    Uniques et instantanés Répétitifs

    Utilisateur Press, Release MouseMove

    Système LoadMovie EnterFrame

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Classification et enchaînement des événements

    ● Enchaînement des événements○ Après les déclarations et les initialisations, l'enchaînement est le

    suivant :■ Un événement périodique, répétitif, tel que le timeout,■ Déclenche l'exécution d'un script général « moteur »■ Lequel redistribue les tâches en envoyant à chaque sprite (objet

    graphique en mouvement) l'ordre d'exécuter ses méthodes.

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Concepts de programmation

    ● Les variables○ les variables sont utilisés pour manipuler des données dans des

    programmes.○ elles possèdent un nom et une valeur (et éventuellement un type)○ en AS3 :

    var maVar:Number = 500;

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Sommaire

    ● Introduction à la POO● Classification et enchaînement des événements● Concepts de programmation● Programmation ActionScript 3.0

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Concepts de programmation

    ● Les tableaux○ c’est une variables qui permet de stoker plusieurs données en une

    seule instance.○ en AS3 :

    Tab[0] = 1;Tab[1] = 2;

    ….Tab[9] = 10;

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Concepts de programmation

    ● Les fonctions○ Les fonctions sont des bloques d’instructions qui accomplissent une

    tâche particulière dans l’application.○ Attention à bien faire la différence entre la définition d’une fonction

    et son invocation.○ Les fonctions peuvent accepter des paramètres.

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Concepts de programmation

    ● Les instructions de répétition○ Elles permettent de répéter une instruction suivant un certain

    nombre d’itération (for) ou suivant la véracité d’une condition (while).

    ● Les instruction conditionnelles○ Elles permettent de prendre des décisions dans les programmes.○ Elle constitue la logique et le flow de contrôle du code.○ if-then-else

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Sommaire

    ● Introduction à la POO● Classification et enchaînement des événements● Concepts de programmation● Programmation ActionScript 3.0

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Programmation ActionScript 3.0

    ● Déclaration de variablesprovoque un warning concernant l’omission du type

    permet le typage dynamique

    écriture correcte à privilégier

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Programmation ActionScript 3.0

    ● Classes vs prototypes○ AS1 utilise la notion de prototype pour définir une classe.

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Programmation ActionScript 3.0

    ● Classes vs prototypes○ En AS3, une classe se définit dans un fichier à l'extension .as.

    ■ La classe Ball devra être implémentée dans le fichier Ball.as○ Flash ira chercher les classes dans l’ordre suivant :

    ■ le répertoire First Run/Classes de l’installation de Flash,■ le même répertoire que les fichiers FLA.

    ○ Il est possible d’ajouter des chemins spécifiques indiquant à Flash ou se trouve les classes :■ Edit -> Preferences (PC) ou

    Flash -> Preference (Mac)

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Programmation ActionScript 3.0

    ● Classes vs prototypes○ Exemple de la classe Ball :

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Programmation ActionScript 3.0

    ● Classes vs prototypes○ Redéfinition en AS3 (plus de prototype)

    Nécessite de recrée le lien avec la classe MovieClip

    dans le panel Librairie de l’IDE

    Flash

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Programmation ActionScript 3.0

    ● Propriété publique et privée○ accès public

    ○ accès privé

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Programmation ActionScript 3.0

    ● Typage fort

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Programmation ActionScript 3.0

    ● Gestion des événements○ en AS3 tout événements est représenté par un objet événement qui

    correspond à une occurrence de la classe Event (ou une classe fille).

    ○ Lorsque Flash détecte un clic de souris, il crée un objet événement (occurrence de la classe MouseEvent) qui représente cet événements.

    ○ Les objets événement peuvent être intercepté grâce à des écouteurs d’événement qui sont des méthodes ou des fonctions écrite pour répondre aux événements.

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Programmation ActionScript 3.0

    ● Gestion des événements○ Structure de base d’un écouteur d’événement :

    function Reponse(evt:EventType):void {

    }

    cible.addEventListener(EventType.EVENT_NAME, Reponse);

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Programmation ActionScript 3.0

    ● Flux d’événements○ Le flux d’événements représente le parcours que suivra un objet

    événement dans la liste d’affichage :■ clique sur le noeud enfant 1

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Programmation ActionScript 3.0

    ● La classe Event○ procure des propriétés et des constantes en lecture seule pour tous

    les objets événements : ■ Event.type : type d’objet événement■ Event.cancelable : évite l’objet événement si vrai■ etc.

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Programmation ActionScript 3.0

    ● Écouteur d’événement : exemple

  • DUT MMI 2 - Programmation objet et événementielle - L. Capocchi

    Outils en ligne et bibliographie

    ● Object-oriented ActionScript 3.0, Peter Elst, Sas Jacobs, Todd yard, Friends of ED ADOBE Learning library.