Artkabis

Salut !!!
Si vous êtes membre du forum, vous pouvez vous connecter.
Au cas contraire vous avez la possibilité de créer gratuitement un compte...

Forum d'entraide en graphisme et webdesign. Formation pour Flash, Photoshop et les langages: as2, as3, html, php, javascript, etc.


    Fonction ciblé pour nombre de bouton indéfini

    Partagez

    artkabis
    Fondateur
    Fondateur

    Messages : : 4545
    Age : : 32
    Logiciels : Logiciels : : Photoshop CS4, Flash CS4, Indesign CS4, After Effects CS4, Illustrator CS4, Premier Pro CS4, Encore CS4, Flexbuilder 3, Papervision 3D, Camtasia, Captivate, InDesign, Swift 3d, Illustrator, Dreamweaver CS3, Blender, Swift 3D, WampServer.
    Date d'inscription : 11/09/2008

    Capacités en graphisme
    Capacité graph:
    9/10  (9/10)

    Fonction ciblé pour nombre de bouton indéfini

    Message par artkabis le Jeu 18 Déc - 3:45

    Bonjour à tous, ayant fait une découverte plutôt sympathique, je souhaitais tout simplement la partager avec vous. Nous allons voir comment il est possible de réduire considérablement la taille de votre code lors de la mise en place de différents états sur vos boutons.

    Pour que vous compreniez l'intérêt de la chose, imaginez que vous ayez à créer plusieurs boutons utilisant différents états: rollOver, rollOut, press et release (dessus, dehors, clic, relâchement). Dans nos différents tutoriaux nous avons vu qu'il était possible d'utiliser ce type de codage:

    PS:Je rappelle que notre code utilise le langage as2.
    Code:

    bt.onRollOver = function(){
          gotoAndPlay("over");
    }
    bt0.onRollOut = function(){
          gotoAndPlay("out");
    }
    bt0.onRelease = function(){
          gotoAndPlay("relache");
    }
    bt0.onPress = function(){
          gotoAndPlay("clic");
    }
    bt1.onRollOver = function(){
          gotoAndPlay("over");
    }
    bt1.onRollOut = function(){
          gotoAndPlay("out");
    }
    ...
    bt2.onRollOver = function(){
          gotoAndPlay("over");
    }
    ...
    bt3.onRollOver = function(){
          gotoAndPlay("over");
    }
    ...
    Dans ce code, chaque état utilise une fonction menant à la partie correspondante (Ex:onRelease>>jouera la partie de l'étiquette "relache").

    Nous avons donc quatre états par bouton donc quatre fonctions par bouton. Imaginons que lors d'un projet, vous ayez besoin de créer 100 boutons utilisant eux aussi ces quatre états. Si vous débutez votre apprentissage en actionscript, vous seriez tentés de coder chacun de vos boutons comme nous l'avons vu ci-dessus. Ceci reviendrait à utiliser 400 fonctions (100 boutons x 4 états=400). Pensez bien que ceci serait légèrement ridicule puisque vos 100 boutons utilisent les quatre mêmes états (out, over, release, press).

    Nous allons donc voir comment il est possible de créer une fois pour toutes, les fonctions de chacun de ces états et comment il est possible de les relier à nos 100 boutons (100 étant un exemple). Au lieu de répéter nos fonctions par le nombre de boutons, nous allons définir une boucle qui nous permettra de simplifier notre code. Grâce à ceci, vous pourrez utiliser le nombre de boutons que vous souhaitez, sans pour autant remanier l'intégralité de votre code. En effet, il vous suffira de modifier une seule variable pour que le code soit adapté au nombre de boutons, ceci permet tout simplement d'avoir une meilleure flexibilité dans votre code.

    Pour comprendre ce fonctionnement, voici une petite vidéo qui vous démontrera l'intérêt d'une telle flexibilité:



    Dernière édition par artkabis le Jeu 18 Déc - 19:33, édité 4 fois

    artkabis
    Fondateur
    Fondateur

    Messages : : 4545
    Age : : 32
    Logiciels : Logiciels : : Photoshop CS4, Flash CS4, Indesign CS4, After Effects CS4, Illustrator CS4, Premier Pro CS4, Encore CS4, Flexbuilder 3, Papervision 3D, Camtasia, Captivate, InDesign, Swift 3d, Illustrator, Dreamweaver CS3, Blender, Swift 3D, WampServer.
    Date d'inscription : 11/09/2008

    Capacités en graphisme
    Capacité graph:
    9/10  (9/10)

    Re: Fonction ciblé pour nombre de bouton indéfini

    Message par artkabis le Jeu 18 Déc - 4:41

    Pour ceux qui souhaiteraient utiliser le langage as3, voici comment il possible de récupérer les avantages décrits précédemment avec une réduction encore plus flagrante de notre code.

    Dans cet exemple nous pouvons nous rendre compte de la puissance et de l'énorme flexibilité que nous offre le langage actionscript3.

    On pourrait donc traduire le code précédent par:
    Code:

    addEventListener(MouseEvent.MOUSE_OUT,out)
    addEventListener(MouseEvent.MOUSE_OVER,over)
    addEventListener(MouseEvent.MOUSE_DOWN,clic);
    addEventListener(MouseEvent.MOUSE_UP,relache)

    function over (pEvt:MouseEvent){
       pEvt.target.gotoAndPlay("over");
    }
    function out(pEvt:MouseEvent){
       pEvt.target.gotoAndPlay("out");
    }
    function clic(pEvt:MouseEvent){   
       pEvt.target.gotoAndPlay("clic");
       trace(pEvt.target.name);
    }
    function relache (pEvt:MouseEvent){
       pEvt.target.gotoAndPlay("over");
    }


    Ici les avantages de l'as3 sont radicaux, car il n'est même plus obligatoire de définir le nombre de boutons dans une variable et d'attribuer des noms d'occurrence en suivant un ordre précis (bt0,bt1,bt2...) puisque chaque évènement est isolé. Chaque bouton créé utilisant les quatre états (over,out,clic,relache.) bénéficiera de toutes les fonctionnalités qui leur auront été déclarés au préalable. Ceci vaut pour tout bouton créé utilisant ces différents états, qu'il y en est un ou deux mille, chacun d'entre eux bénéficiera des fonctionnalités liées à l'évènement.


    Dernière édition par artkabis le Jeu 18 Déc - 19:36, édité 1 fois

    Woxe
    Nouveau membre
    Nouveau membre

    Messages : : 22
    Age : : 27
    Logiciels : Logiciels : : Quelles logiciel utilisez vous?
    Date d'inscription : 11/12/2008

    Re: Fonction ciblé pour nombre de bouton indéfini

    Message par Woxe le Jeu 18 Déc - 12:50

    Je penses que le tuto en as3 pourrais être très utiles pour les novices plus que le tuto en as2 tu en penses quoi ?

    artkabis
    Fondateur
    Fondateur

    Messages : : 4545
    Age : : 32
    Logiciels : Logiciels : : Photoshop CS4, Flash CS4, Indesign CS4, After Effects CS4, Illustrator CS4, Premier Pro CS4, Encore CS4, Flexbuilder 3, Papervision 3D, Camtasia, Captivate, InDesign, Swift 3d, Illustrator, Dreamweaver CS3, Blender, Swift 3D, WampServer.
    Date d'inscription : 11/09/2008

    Capacités en graphisme
    Capacité graph:
    9/10  (9/10)

    Re: Fonction ciblé pour nombre de bouton indéfini

    Message par artkabis le Jeu 18 Déc - 15:23

    Moi de toute façon, je conseille à tout le monde de passer en as3 après, il faut être conscient que la plupart des membres du forum et même des personnes utilisant flash tout simplement, utilisent encore l'as2. Et oui, il faut encore un peu de temps pour que les tutos et les fichiers mis à disposition sur le net soient codés en as3. Donc voilà, si ce tuto a été fait en as2 c'est que qu'il n'y a pas de solution simple pour avoir ce genre avantages dans un code as2, après le tuto as3 ne serais pas valable puisque ses bénéfices sont originels au langage as3, ce qui n'est pas le cas du langage as2. Et oui, pour ceux qui codent encore en as2, je peux te dire que ce tuto peut rendre de véritable services (en matière de performance).

    Contenu sponsorisé

    Re: Fonction ciblé pour nombre de bouton indéfini

    Message par Contenu sponsorisé Aujourd'hui à 19:13


      La date/heure actuelle est Ven 9 Déc - 19:13