Créer son site Gratuitement : Service / Outils webmaster gratuit
Mon Site Gratuit
Contactez nous
Nos partenaires
Scripts
Tutoriaux
Nos services
Forums
Accueil
Forums[CS3/AS3] Développement » scénario-programmation
      Imprimer le sujet FAQ  M'enregistrer 
  Le monde virtuelle du flash vous réserve plein de suprise éblouissante rien que pour vous !
Animations à gogo ... Bonne visite !

[CS3/AS3] Développement » scénario-programmation

Messagede zardoz le 09 Juin 2009, 08:16



Les préparatifs » Une manière logique de développement


Planifier son scénario


Le développement en scénario est au départ aussi exgigant que le développement par programme. Il faut tirer le maximum d'expérience avant de prétendre développer de façon logique. Au départ lorsque nous sommes débutants nous choisissons le scénario car nous croyons que c'est plus facile et par le fait même nous nous soustrayons devant la tâche de programmation et les rudes exercices et études soumises. Mais rien n'est vraiment facile dans notre apprentissage. Certaine erreur de développement pourra aisément augmenter le temps passer à modifier ou à réparer. Par contre avec un peu d'expérience et une certain logique ont en arrive, par obligation, à trouver des techniques de bases. Une des plus connu est le clip d'animation.

Le clip d'animation


Le clip d'animation connu sous le nom de « MovieClip » a pour objectif principale de centraliser les objets visuels à un seul endroit. Il possède aussi un scénario, mais celui-ci n'entretiens aucun rapport avec le scénario principal. Il est parfaitement autonome. Ce n'est qu'à la toute fin de son développement que nous le placerons sur le root « le scénario principal ». Son but premier est donc la centralisation des objets visuels et par le fait même il est considérer comme un puissant conteneur. Celui-ci ayant son propre scénario personnel, il pourra profiter de tous les genres d'animations en mouvement. Lorsque vous déplacer un clip/conteneur d'animations tout son contenu se déplace avec le contenant.

À propos des captures » Quelques explications


En premier lieu voici le fichier animationTexte_01.zip »
Installez le et voyons ensemblent quelques points importants de projets en scénario.

animationText_01.ZIP


En deuxième lieu je vous donnent les résultats exécuter du projet »
Ici l'animation est terminer dans son exécution.

resultatScenario_01.png


Il s'agit ici des résultats de l'animation une fois terminer mais pas de l'ensemble du player car j'ai placer un bouton dont le but est de rejouer l'animation. L'animation est de courte durée mais nous pouvons rejouer celui-ci à volonter.

Le clip est placer en scénario principale après son développement »

scenario_00.png


Remarquer ici que rien n'a été développer dans le scénario principal. Il ne s'agit en fait que la descente du clip d'animation de la bibliothèque vers la scène. Vous n'avez donc sur la capture du haut qu'un seul « calque », ayant le clip d'animation développer en bibliothèque.

Le clip a une timeline « scénario » de 40 images « frames ». Cependant il en a 50 dans son propre scénario.
Remarquez aussi que la scène est configurer à 35 fps/ips. Cependant le clip d'animation lui est scripter à 90 ips. On abordera le sujet un peu plus loin sur le topic.

Le scénario personnel d'un clip d'animation


L'organisation des calques


Sur la capture du bas il y a une représentation d'un scénario de clip. Comme vous pouvez le voir celui-ci est propre. Vous avez deux calques qui ne sont pas contenu dans des répertoires. Il s'agit des calques nommé étiquettes et scripts. Ceux-ci resteront visibles car ils sont important. Dû moins dans le développement en démonstration.

Vous avez aussi deux répertoires qui eux contiennent les objets graphiques et le plus important le développement de l'animation. Cette animation est un clip placer en bibliothèque, celui-ci se nomme « clip d'animation de texte ». Si vous cliquez deux fois dans la zone visuelle de ce clip vous accédez au scénario du clip.

Si vous placer logiquement en répertoire vos clips d'animation vous aurez une meilleur vue de votre projet et de même utiliserez moins souvent le scrollbar du scénario. C'est donc une bonne habitude à prendre que de planifier des répertoires d'objets et de les différenciés des autres objets. Prenez note aussi que les répertoires en scénario flash existe depuis la version MX 6.

Exemple d'un scénario dont les répertoires sont fermer » Les points à retenir ici seront les deux calques principaux.

Ceux-ci sont à l'extérieur des répertoires.

» étiquettes
» scripts

Vous avez aussi les deux répertoires pouvant être ouvert ou fermer pour un meilleur confort.

» objets : On pourrais le nommer objets d'animation.
» boutons

Remarquez de même que toute l'animation est effectif dans la zone « étiquettes/lecture » sur le calque « objets ».
La zone étiquettes/initialisation ne comprend qu'une partie de scripts sur le calque « scripts ».

Aucune animation ou objet visuel ne s'applique dans la zone « initialisation ». Celà est facultatif évidemment mais vous pourriez utiliser cette zone pour un graphique de « bienvenu ou page d'accueil », comme exemple. Cette zone est réserver pour la surveillance des chargement des données. Cette zone est donc tout désigné pour un préchargeur. C'est à la deuxième capture de scénario que vous pourrez mieux le voir, car celui-ci, les répertoires sont ouvert. La partie « bleuté » de la timeline représente l'animation. Il s'agit d'interpolation de formes.

Image

Comme je vous le disais il s'agit d'un clip ayant son propre scénario. En vérité c'est qu'un clip n'a rien à envier du scénario principal. Son but est justement d'alerger le scénario principal. Le scénario principal joue un rôle d'accueil de différent projets, tout comme une page HTML étant un conteneur de lecteurs de toute sortes.

Votre scénario principal accueillera n'importe quel projets, peut importe la source d'origine et de destination. C'est son rôle et vous devriez le considérer comme tel. Celà vous simplifira la tâche de développement en scénario-programmation comme en scénario tout court. Ici les répertoires sont ouvert. Il s'agit du même scénario qu'à la capture ci-haut mentionné.

Image

Parlons des deux premiers calques du scénario de clip


Le calques étiquettes


Les étiquettes ont un but précis que vous devriez toujours utiliser. Ceux-ci ont pour but de placer une « String » au lieu d'un « nombre » lorsque vous programmer. Exemple » gotoAndStop('lecture');.

Ce point est d'une grande importance. Vous allez sauver énormément de travail si une modification au niveau de la timeline vous est demander uniquement parce que vous utilisez une « String » plutôt qu'un « nombre ».

Si donc vous déplacer un frame cibler par un nombre, gotoAndStop(12);, à « 18 » par exemple, vous allez être dans le pétrin. Vous allez devoir retrouver tout les programmes contenant la ligne de code gotoAndStop(12); afin de les modifier à gotoAndStop(18);.

Il n'en sera pas de même si vous choisissez une « String », sa valeur sera toujours constante, même si vous la déplacer en timeline. Considérer ce point car il est d'une grande importance en développement de scénario.

Il en est de même du calque « scripts ». Celui-ci doit toujours être à proximité du calque « étiquettes ». Il doit aussi être visible, en dehors des répertoires. Nous parlerons des scripts un peu plus bas sur le topics. En principe il est possible, donc préférable, d'écrire tous les scripts sur la première « image clé » du scénario du calque des scripts.

Le calque scripts


J'ai déjà parler des calque scripts. Allons y un peu plus profondément »

D'abord j'aimerais dire que vous ne pourrez pas vous départir du calque « scripts ». Ceci est dû au fait que vous aurez toujours besoin au minimum de la fonction « stop( ); ». C'est pourquoi ceux et celles qui voudront éviter la programmation pour quelques raisons que ce soit, vous devrez quand même structurer un calque pour les scripts.

Si votre application est interactive ces principes de bases vous seront familier. Alors n'essayez pas d'éviter ne serais-ce que le minimum permis et obligatoire. Sans quoi votre animation sera lu en continu. C'est la valeur par défaut du player flash.

À quelque part une animation se doit d'être interactive ou doit tout simplement faire une pause. Soit par une action utilisateur ou par un programme d'automatisation basé sur le temps. N'oublions pas que toute animation, si petite sois telle utilise une ressource machine.

Les fonctions « stop( ) et play( ) » est le minimum requis. Remarquons quand même qu'une animation répétive, comme on en vois souvent sur le web, dans les bannières publicitaire par exemple requiert le minimum requis en programmation. Cependant il est aussi intéressant de faire des animations simple en scénario et sans aucune programmation.

Entrons au coeur du calque des scripts


Code: Tout sélectionner
stage.frameRate = 90;
// ...
/* Le but de cette fonction est de prévoir
* la possibilité d'un préchargeur si vous
* avez une application de forte taille et
* surtout placer sur un serveur à distance.
*/
// ...
function chargement():void
{
    if(framesLoaded >= totalFrames)
    {
      // .
      // .. Si oui, si le chargement des frames est completer,
      // .. ce qui est le cas ici, Vous passer à l'étiquette nommer » lecture.
      // .
       gotoAndPlay('lecture');
      // .. Traçons au » Output Panel.
       trace('Images clés charger :', framesLoaded, '\nMaximum d\'images clés à charger :', totalFrames);
    }
    else
    {
      // .
      // .. Si non, la fonction stop();, agira sur cette image clé.
      // .. Vous resterez sur l'étiquette nommer » initialisation,
      // .. et ce, pendant toute la durée de chargement des frames.
      // .. Lorsque le chargement est completer nous changons d'étiquette.
      // .
       stop();
       trace('Images clés charger :', framesLoaded, '\nMaximum d\'images clés à charger :', totalFrames);
    }
}
// .. Appelle de la fonction
chargement();


Vous pourriez très l'écrire comme ceci » D'ailleurs je le recommande pour les débutants en programmation.

Sur le deuxème script si vous enlever la fonction « chargement() », ainsi que l'appelle de la fonction « chargement( ) », vous bloquez l'animation à la première clé de la zone « étiquettes/initialisation ».

Il n' y a aucun graphique à cette zone. Car nous disons « stop( ) » dès la première ligne de code. Ce qui prouve le bon fonctionnement du script de la fonction « chargement( ); ». La vitesse d'exécution provient de la deuxième ligne de code « stage.frameRate = 90; ». En effet car nous pouvons programmer l'ips en dehors de sa valeur par défaut « 12 ».

Code: Tout sélectionner
stop();
stage.frameRate = 90;

function chargement():void
{
    if(framesLoaded >= totalFrames)
    {
      // .
      // .. Si oui, si le chargement des frames est completer,
      // .. ce qui est le cas ici, Vous passer à l'étiquette nommer » lecture.
      // .
       gotoAndPlay('lecture');
      // .. Traçons au » Output Panel.
       trace('Images clés charger :', framesLoaded, '\nMaximum d\'images clés à charger :', totalFrames);
    }
    else
    {
      // rien
    }
}
// .. Appelle de la fonction
chargement();


Malgré qu'un « stop( ); » soit défini dans les scripts, le lancement de l'animation nous ramène toujours à « étiquettes/lecture ». Celà est dû au fait que l'animation n'a pas de poid majeur à charger, et qu'il roule en local.

Dans ce script il y a une condition « if », qui détermine le moment où nous passons de la zone « initialisation » à la zone « lecture ».

if ( framesLoaded >= totalFrames ) { gotoAndStop( ' lecture ' ); }.

En pseudo-code nous dirions « Si le nombre de frames charger est plus grand ou égale au nombre à charger , gotoAndPlay( ' lecture ' ); ».

De cette façon le premier keyframe est important et c'est la raison pour lequelle il est nommé « initialisation », en effet puisque la plupart des variables de controles ou d'init, ainsi que les fonctions se retrouverons sur cette partie.

En vérité c'est que tous vos programmes controlant votre application peuvent se placer à ce keyframe. Le conseil que je vous donnent ici c'est de réfléchir la façon dont vous allez disposer vos programmes sur votre timeline.

En développement scénario-programmation vous aurez deux développements très distincte l'une de l'autre. Le scénario d'une part et sa programmation d'autre part. Opter pour la logique en matière de développement et vous en serez témoin.

Passons au deuxième script


Celui-ci se retrouve au dernier keyframe du calque « scripts », donc dans la zone étiquettes nommé « lecture ».

Remarquez ici que j'ai conserver le « nombre » plutôt qu'une « String », en ce qui concerne les deux scripts du bouton. C'est normal puisque qu'il s'agit d'un clip d'animation en lui même, parfaitement autonome aussi, et ne possèdant que deux keyframes placer côte à côte. Ce clip ne risque pas de changer.

Celui-ci est placer dans le clip « clip d'animation de texte ». C'est là l'importance des clips, ceux-ci peuvent être imbriquer l'un dans l'autre. Le clip « clip d'animation de texte » est le clip d'acceuil de tous les autres clips figurant dans l'animation finale.

Cependant chacun des clips figurant ont un scénario propre et parfaitement autonome. Si donc vous déplacer en « y » le clip « clip d'animation de texte », du root, c'est la scène principale, tous les autres seront aussi déplacer car ils sont tous imbriquer l'un dans l'autre.

Code: Tout sélectionner
stop();

btnRelecture.addEventListener(MouseEvent.CLICK, relecture);
btnRelecture.addEventListener(MouseEvent.MOUSE_OVER, couleurOverBouton);
btnRelecture.addEventListener(MouseEvent.MOUSE_OUT, couleurOutBouton);


buttonMode = true;

function couleurOutBouton(e:MouseEvent):void
{
   btnRelecture.gotoAndStop(1);   
}
// ..
function couleurOverBouton(e:MouseEvent):void
{
   btnRelecture.gotoAndStop(2);   
}
function relecture(e:Event):void
{
   gotoAndPlay('lecture');
}


Ce script n'a qu'un seul but, relancer à volonté l'animation. Évidemment c'est dans un contexte tutoriel que le bouton a été placer et scripter. Dans un contexte commerciale je l'aurais développer autrement, c'est à dire sans contrôle utilisateur. J'aurais plutôt utiliser un objet « Timer ». Un contrôle automatique basé sur le temps.

Par contre le keyframe « No 50 » du calque script resterais en place puisque nous avons encore besoin de l'instruction « stop( ); ». Celui-ci restera essentielle. Par contre l'animation ne jouerais qu'une seule fois. Il faudrais relancer l'animation au 10/s, avec l'objet « Timer ».

Le mouvement des formes en scénario


L'interpolation


Dans ce projet vous avez le répertoire « objets ». Celui-ci s'exécute dès le lancement de l'animation. Il s'agit de quelques interpolations. Ceux-ci ont pour but de créer le mouvement d'un projet. Cette animation n'est gérer par aucun programme.

Vous comprenez comme moi que le mouvement est un art en soi. Celui-ci doit être communicatif soit d'un message, d'une émotion ou d'une beauté quelquonque. Le mouvement des objets ne doit pas être pris à la légère. Plus vous vous lancerez vers de gros projets, plus vous devrez vous assurez de la qualité des mouvements.

Souvent dans un clip d'animation, vous vous retrouvez avec plusieurs autres clips imbriquer les un dans les autres chacun ayant son propre scénario. Chaque scénario pouvant être développer de façon autonome, chacun des objets visuels ayant son propre mouvement.

C'est pourquoi nous sommes appeler à réfléchir le mouvement des objets en rapport avec son environnement immédiat. De là, évidemment, le besoin de développer scénario et programmation sur la timeline du clip d'accueil, du clip de base. Ce clip de base est le clip qui sera placer sur la timeline du scénario principal, le root.

Prenez note tout simplement que le mouvement des objets de votre animation demandera un temps de recherche et de réflexion. Vous serez appeler à faire des choix.

amicalement ++

NOTE : Certaines indications intéressantes m'ont été suggérer. Je vous promets donc un prochain tuto axé vers la connaissance de l'interface graphique de Flash, avec des captures explicatifs axé sur des techniques de base offert par ce merveilleux logiciel.
Dernière édition par zardoz le 11 Juin 2009, 06:19, édité 10 fois.
zardoz
Plug'zien Star'z
Plug'zien Star'z
 
Messages: 888
Inscription: 16 Fév 2008, 04:05
Points: 582


Re: [CS/AS3] Développement » scénario-programmation

Messagede Cclleemm le 09 Juin 2009, 12:08

Bravo, et mes félicitations pour ce tuto ! Tu t'améliore, et tes oeuvres son de plus en plus compréhensible ;-D C'est souvent difficile d'exprimer qqch de complexe pour que même un novice (comme moi) le comprenne.
La c'est beaucoup mieux illustrer que d'habidute ! Et très bien structuré grace aux titres et sous titres ! J'aime bien.
Niveau contenu, je trouve que tu explique bien les notions spéciales de FLASH mais par contre tu n'explique pas comment créer de A à Z l'effet que tu propose en démo. Ou cliquer ? Que faire ? Comment ajouter les effets sur les texte ? Tout ça pas à pas serait le top !
En tout cas merci, je te laisse poursuivre, et essaye de prendre en compte mes indications si possible.

PS : J'ai mis le lien du tuto de Boulledogue sur ton topic si ça ne te dérange pas.
Image
Avatar de l'utilisateur
Cclleemm
Admin'z
Admin'z
 
Messages: 2762
Inscription: 14 Mar 2007, 16:21
Localisation: Savoie
Points: 2003


Re: [CS3/AS3] Développement » scénario-programmation

Messagede zardoz le 09 Juin 2009, 23:11

Oui je suis d'accord avec le lien vers le tuto de boulledogue, d'ailleurs j'ai cliquer dessus.
Ce qui prouve l'intérêt des liens. J'en ai profiter pour observez les rapports images et textes.

Mais un tel tuto demande vraiment des préparatifs. Pour ne pas dire énorme.
Je ferai donc mon possible pour me rapprocher davantage de tes indications.

++
zardoz
Plug'zien Star'z
Plug'zien Star'z
 
Messages: 888
Inscription: 16 Fév 2008, 04:05
Points: 582



Retourner vers Flash

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité