IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

[debutant] questions de programmation


Sujet :

Flash

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut [debutant] questions de programmation
    Bonjour,

    Je suis en train d'essayer d'apprendre Flash, mais il y a certain concepts qui m'échapent...

    je commence par essayer d'apprendre les technique d'animation...

    J'ai créé dans la bibliotheque un movieclip animé et interpolé. Tout seul, il marche très bien... Par contre, si je l'importe dans ma scene, ce dernier ne s'anime pas... L'animation principale de la scène, ça roule, mais pas celle du clip... Faut-il lancer l'animation manuellement via actionscript ou y'a t-il une subtilité qui m'échape !?

    Concernant cette importation du clip dans ma scène, je suis assez surpris de n'avoir trouvé nul part ou nomé l'instance de mon clip... Est-ce encore une subtilité que je n'ai pas su trouvé ? j'ai vu qu'on pouvait renomer le nom du clip dans la bibliotheque, mais rassurez moi, on doit bien pouvoir nomé ces instances une a une et ainsi leur attribuer des traitements spécifiques !?

    Enfin, ou se trouve le point d'entrée actionscript de l'application !? Genre si je veux taper du code, comment puis-je savoir quelle code sera executé a quel moment... Je vois en effet qu'on peut associer du code a presque tout, et même dans le temps (code différent pour un meme objet a des moments different de la séquence).

    En vous remerciant par avance pour vos eclaicissements !

  2. #2
    Membre Expert Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Par défaut
    bonjour
    Citation Envoyé par gloubi
    Faut-il lancer l'animation manuellement via actionscript
    non, un clip "déposé" dans une scène s'execute automatiquement sans aucune instruction particulière. Si le tien ne marche pas c'est qu'il y a une erreur quelque part... (tu peux déposer le fichier ici et on te dira pourquoi)

    Citation Envoyé par gloubi
    on doit bien pouvoir nomé ces instances une a une et ainsi leur attribuer des traitements spécifiques !?
    bien entendu c'est même ma base de flash. Tu peux instancier et nommer dynamiquement un clip de ta bibliothèque avec l'instruction attachMovie() mais il faut au préalable "exporter" le clip. Dans la bibliothèque, clic droit sur le clip choisir liaison et dans la fenêtre chosir un nom de liaison, et cocher les cases "exporter pour action script" et "exporter dans la première image". C'est ce nom de liaison qui est fournit en paramètre dans la methode attachMovie(...)
    Cependant il y a plus simple, quand tu fais un drag & drop d'un clip de la biblothèque dans ta scène tu dois voir dans le panneau des propriétés un champs texte libre <nom de l'occurcence> c'est là que tu nommes ton clip.

    Enfin, ou se trouve le point d'entrée actionscript de l'application !?
    Le point d'entrée c'est la première frame. Dans flash tu peux effectivement placer du code n'importe ou et "n'importe quand" puisque il y a une notion temporelle, c'est à toi de bien structurer les choses et de prendre en charge la cohérence de ton programme, c'est une des difficultés majeures de flash mais aussi paradoxalement sa très grande force.
    Il est d'usage de réserver un calque qui portera les images clés réseervées au code, simplement pour une question de lisibilité

    en espérant avoir un peu éclairé ta lanterne, bon courage.


  3. #3
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    Merci beaucoup pour ces réponses !

    J'ai bien avancé puisque j'arrive désormais a faire bouger au clavier des trucs sur ma fenetre...

    Je note au passage que "une scène s'execute automatiquement sans aucune instruction particulière", mais pas quand on fait juste "lire" (il fallait tester l'animation, soit ctrl + enter). Savoir ça résoud un de mes gros problèmes : certaines fonctions sont purement et simplement ignoré quand on "lit", genre les stop() !

    Maintenant, j'ai un nouveau problème !

    j'ai utilisé pour faire réagir au clavier mon clip la méthode suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    perso1_mc.onEnterFrame = function() 
    {
        if (Key.isDown(Key.UP)) 
        {
            this._y -= 1;
        }
    //ect...
    Au vu du comportement de cet evenement, je serais tenté de dire que j'ai fait le porc, cette fonction s'executant en boucle, qu'une touche soit pressée ou non.
    J'ai donc virer tout ça pour essayer de le remplacer par un vrai keyboard listener, mais sans grand succes...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    perso1_mc.addListener(listener:Object)
    {
                 this._x += 5;
    	trace(Key.getCode());
    }
    ne marche pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    perso1_mc.onKeyDown = function() 
    {
    	this._x += 5;
                 trace(Key.getCode());
    };

    ne marche pas non plus et je parle pas des dizaines de variantes que j'ai essayé, a coup de chemin relatif, absolu etc...

    J'ai aussi essayé des trucs style on(keydown, "LEFT") et bon nombre de codes trouvés dans les aides, forum et tuto a droite a gauche, mais rien n'y fait, la seul methode qui ai fonctionné étant la 1er évoquée...

    Quelqun pourrait m'éclairer sur la façon juste de faire ?

  4. #4
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    Je viens de trouver une nouvelle méthode :p

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    var avance:Number = 0;
    var myListener:Object = new Object();
     
    myListener.onKeyDown = function () 
    {
    	if(!avance) perso1_mc.gotoAndPlay(1);
    	avance = 1;
    	perso1_mc._x += 1;
    }
     
    myListener.onKeyUp = function () 
    {
    	avance = 0;
    	perso1_mc.stop();
    }
     
    Key.addListener(myListener);
    Seulement voila... le problème cette fois, c'est que le deplacement de mon objet se fait a la façon du curseur sous un éditeur de texte : on appuis sur la touche, le curseur se déplace, bloque quelques centiemes de secondes et repart si on a pas relaché la touche...

    J'ai donc tenté de déclarer la variable avance, qui tant qu'elle est a 1 veut dire "perso1_mc._x += 1;" et dont la valeur est affecté sur les keydown, keyup...
    Seulement voilà, je ne vois pas ou mettre l'instruction perso1_mc+=1 pour qu'elle soit éxecuter en boucle tout le temps ou ma touche est enfoncée...

Discussions similaires

  1. [Debutant] [Windows] livre programmation windows
    Par orelero dans le forum Windows
    Réponses: 8
    Dernier message: 11/02/2005, 13h32
  2. Réponses: 48
    Dernier message: 06/01/2005, 18h02
  3. [debutant]Question toute bete sur le messages
    Par flogreg dans le forum Servlets/JSP
    Réponses: 18
    Dernier message: 09/09/2004, 09h07
  4. [debutant] Questions a propos du XML
    Par brune dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 04/06/2004, 09h39
  5. [debutant] Questions sur 1 futur projet
    Par cyrull22 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 28/04/2003, 21h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo