Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: RESOLU - Deplacement movieclip  (Lu 870 fois)

sep

  • Wisi tout neuf
  • *
  • Hors ligne Hors ligne
  • Messages: 5
    • Voir le profil
RESOLU - Deplacement movieclip
« le: Mars 14, 2011, 13:54:08 pm »
Bonjour,
J'ai un problème que je n'arrive toujours pas à résoudre depuis plusieurs semaines.
Malgré mes demandes sur plusieurs sites spécialiser dans flash et mes recherches multiples, je suis toujours confronté à un problème avec mon AS (action script 2)

J'essaie de faire rejoindre un movieclip qui va rejoindre un autre movieclip dans la scène, avec pour cela une vitesse, de façon a ce que cela soit fluide.

Le problème dans mon code est que la vitesse du movieclip qui se déplace diminue à chaque fois qu'il approche de la position de l'autre movieclip.

Du coup cela pose un réel problème, en effet si le movieclip qui est fixe est assez près des le départ du movieclip qui va allez le rejoindre, la vitesse sera pratiquement plus perceptible.

Dans ma scène je suis en 24 images seconde.

Mon clip qui ce déplace : Clip_deplace
Mon clip fixe : Clip_fixe

Dans mon Clip_fixe, j'ai mis un bouton qui me permet de lancer l'action.
on (release) {
this._parent.Clip_deplace.onEnterFrame=function () {
var vitesse:Number = 80;
   this._x+=(_root.Clip_fixe._x-this._x)/vitesse;
   this._y+=(_root.Clip_fixe._y-this._y)/vitesse;

}


Le code fonctionne parfaitement, mais je voudrait qu'il n'y est pas de ralentissement au moment de l'approche de la position du Clip_fixe.

Merci de votre aide à tous  ;)

Très agréable journée.
« Dernière modification: Mars 15, 2011, 01:09:02 am par sep »
IP archivée

marroon

  • Wisi Comment on décroche
  • *****
  • Hors ligne Hors ligne
  • Messages: 1242
  • Wisinaute
    • MSN Messenger - jeanphilippematt@hotmail.fr
    • Voir le profil
    • WWW
    • E-mail
Re : Deplacement movieclip
« Réponse #1 le: Mars 14, 2011, 14:11:12 pm »
Je vais pas t'aider (c'est pas mon domaine) mais d'après mes souvenirs :
- La fonction onEnterFrame n'est pas très bonne à utiliser car celà "rafraichit" l'animation à chaque frame et donc provoque des ralentissements (attention ! à confirmer hein !)
- As-tu regarder du côté de la classe Tween qui permet de gérer des déplacements, acceleration et desceleration.

En attendant RMistral pour des infos pros et précises.
IP archivée
L'échec, c'est la réussite du con. - Frédéric Dard

sep

  • Wisi tout neuf
  • *
  • Hors ligne Hors ligne
  • Messages: 5
    • Voir le profil
Re : Deplacement movieclip
« Réponse #2 le: Mars 14, 2011, 14:40:41 pm »
Bonjour Marroon et merci de ta réponse.

Alors pour la fonction onEnterFrame je l'utilise souvent et j'avais eu de problème, la seul chose que je c'est est qu'il ne faut pas en abuser  :D

Sinon au niveau de la classe Tween je ne connais pas et surtout je me suis jamais servi d'une classe, pour le moment je voudrait juste régler le problème, car j'ai pas beaucoup de temps libre à chaque fois (le travail) mise à part aujourd'hui ou c'est journée repos ouff lol  ;)
IP archivée

RMistral (Wisi)

  • Global Moderator
  • Wisi Comment on décroche
  • *****
  • Hors ligne Hors ligne
  • Messages: 662
    • Voir le profil
    • WWW
Re : Deplacement movieclip
« Réponse #3 le: Mars 14, 2011, 16:20:37 pm »
Bonjour,

Déjà il ne faut jamais mettre le code sur un MovieClip. Il est préférable d'écrire le code au niveau de la scène.

Pour faire déplacer un MovieClip (MC) en code il y a 2 solutions. La première utiliser onEnterFrame et la seconde utiliser la classe Tween.

La première solution consiste à simuler le passage de la tête de lecture sur l'image clé (onEnterFrame) contenant le code à la cadence de la scène par exemple 25 images par seconde

La seconde c'est utiliser la classe Tween. Pour cela il faut indiquer après importation  (import) de cette classe, le nom du MC à déplacer (mobile dans mon exemple), la propriété sur laquelle agir (ici le _x), le type d'effet (Strong, Elastic, Bounce, Regular, None) et le moment de l'effet easeIn, easeOut, easeInOut, easeNone), la position de début et la position de fin et enfin la vitesse en IPS ou en images clés (true, false)


Première solution :

Sur la scène sur un calque un MC nommé dans les propriétés mobile.

Sur un autre calque nommé ActionScript il faut écrire :

//vitesse en nombre de pixel
vitesse=5
//Si ta scène est a 25 ips toute les 1/25 de seconde le MC mobile est déplacé
mobile.onEnterFrame=function(){
     mobile._x+=vitesse
     //Test si je suis toujours sur la scène
     if (mobile._x>Stage.width){
          //remettre le MC mobile à gauche de l'écran
          mobile._x=0
     }
}



Seconde solution :

Sur la scène sur un calque un MC nommé dans les propriétés mobile.

Sur un autre calque nommé ActionScript il faut écrire :

//importation de la classe Tween dans le document
import mx.transitions.Tween;
//"*" permet d'importer les effets
/*Les effets : Back, Regular, Bounce, Elastic, Strong, None
Moment de l'effet : easeIn, easeOut, easeInOut, None*/
import mx.transitions.easing.*;
//Les propriétés : _x, _y, _xscale, _yscale, _alpha, _rotation
var Anim:Tween = new Tween(mobile, "_x", Strong.easeOut, -50, Stage.width+mobile._width, 80, false);
//Deplacement en boucle
Anim.looping = true;



Bon courage.....
IP archivée
Savoir mal est pire qu'ignorer

sep

  • Wisi tout neuf
  • *
  • Hors ligne Hors ligne
  • Messages: 5
    • Voir le profil
Re : Deplacement movieclip
« Réponse #4 le: Mars 14, 2011, 16:28:07 pm »
Bonjour RMistral mille merci pour votre réponse extra et rapide, très rare sur les site web qui parle de flash.
Je vais donc faire avec les deux solutions et adapter celui qui serait le mieux, encore merci pour votre réponse.
J'en apprend encore, grâce à vous  ;)
Merci !
IP archivée

sep

  • Wisi tout neuf
  • *
  • Hors ligne Hors ligne
  • Messages: 5
    • Voir le profil
Re : Deplacement movieclip
« Réponse #5 le: Mars 14, 2011, 16:38:07 pm »
J'en reviens ver vous car y a un truc que je comprend pas.

Comment le code suivant peut dire au Clip_deplace d'allez rejoindre le Clip_fixe ?


on (release) {
vitesse=5
this._parent.Clip_deplace.onEnterFrame=function(){
     this._parent.Clip_deplace._x+=vitesse
this._parent.Clip_deplace._y+=vitesse
     
     if (this._parent.Clip_deplace._x>Stage.width){
         
          this._parent.Clip_deplace._x=0
     }
}
}

Merci parce que la je comprend plus du coup  :-\

Faut bien dire au Clip_deplace d'allez quelque part, c'est pour cela que j'avais fait comme ceci et qui fonctionne, sauf que j'ai un ralentissement quand le clip_deplace arrive de plus en plus près du clip_fixe.

on (release) {
this._parent.Clip_deplace.onEnterFrame=function () {
var vitesse:Number = 80;
   this._x+=(_root.Clip_fixe._x-this._x)/vitesse;
   this._y+=(_root.Clip_fixe._y-this._y)/vitesse;
}
}
« Dernière modification: Mars 14, 2011, 16:40:46 pm par sep »
IP archivée

RMistral (Wisi)

  • Global Moderator
  • Wisi Comment on décroche
  • *****
  • Hors ligne Hors ligne
  • Messages: 662
    • Voir le profil
    • WWW
Re : Deplacement movieclip
« Réponse #6 le: Mars 14, 2011, 19:00:59 pm »
Bonsoir,

Le code que tu écris n'est pas à la bonne place. Il est écrit dans le MC Clip_deplace et pas sur un calque sur la scène.

J'observe cela à l'instruction on(release). Cette instruction ne peut fonctionner que dans un MC donc c'est dèjà pas bon.

Il faut supprimer tes lignes de code. Ensuite tu viens sur la scène (avec la petite flèche bleu). Maintenant il faut ajouter un calque. Ensuite il faut vérifier que le clip que tu souhaites déplacer a comme nom d'occurrence Clip_deplace.

Sur le nouveau calque clic droit puis action

maintenant le code :

//vitesse en nombre de pixel
vitesse=5
//Si ta scène est a 25 ips toute les 1/25 de seconde le MC Clip_deplace est déplacé
Clip_deplace.onEnterFrame=function(){
     Clip_deplace._x+=vitesse
     //Test si je suis toujours sur la scène
     if (Clip_deplace._x>Stage.width){
          //remettre le MC Clip_deplace à gauche de l'écran
          Clip_deplace._x=0
     }
}

Ton code fait ralentir Clip_deplace car ton calcul n'est pas bon. Le but c'est quoi ?
Un déplacement continu, une accélération ou un ralentissement ?

Dans l'attente de te lire.....
IP archivée
Savoir mal est pire qu'ignorer

sep

  • Wisi tout neuf
  • *
  • Hors ligne Hors ligne
  • Messages: 5
    • Voir le profil
Re : Deplacement movieclip
« Réponse #7 le: Mars 14, 2011, 19:07:03 pm »
Bonsoir RMistral et merci de ta réponse, en faite le but est que lorsque l'on clique sur un bouton qui est à l'intérieur du clip_fixe, cela demande alors au Clip_deplace d'aller à la position de clip_fixe, mais avec un vitesse.
En faite ma scène comprend plusieurs movieclip avec un nom propre à chacun (clip_fixe1, clip_fixe2 etc), et un movieclip unique Clip_deplace qui lui devra se déplacer avec une vitesse pour rejoindre un movieclip sélectionné (clip_fixe1, clip_fixe2 etc).
Merci de votre aide !
IP archivée
 




 
Wisibility.com
Wisibility est un sité dédié à la formation aux métiers l’image. Vous y trouverez différentes ressources gratuites et payantes vous aidant à maîtriser les logiciels graphiques tels que Photoshop, Illustrator, InDesign, Flash…

Aujourd’hui, Wisibility réunit une vingtaine d’experts, intervenant en Entreprise pour former graphistes, webdesigners, développeurs web, photographes, monteurs, trucistes…

Depuis 2006 nous nous sommes spécialisés dans les tutoriels vidéos permettant de se former à distance. Des centaines de tutoriels accessibles gratuitement et une boutique sur laquelle vous trouverez des formations complètes et des exercices pratiques.

Wisibility organise des événements graphiques, réalise une WebTV

Wisibility sur Adobe TV

Retrouvez nos tutoriels et nos émissions
sur le site officiel Adobe



 
Nos partenaires

Adobe   fotolia   WebINK   Amka   macandphoto   club
 


Contact - Wisibility est une marque déposée - Mentions légales

Creative Commons License

infos - inspiration - rendez-vous - logiciels materiels - tutoriels gratuits - formations en ligne - forums - galeries - glossaire - wisi tv