Forum de discussion
Forum « Flash et Shockwave » (archives)
Re: comment faire tourner une image horyzontalemment
Envoyé: 15 janvier 2005, 21h55 par blues
en fait faire tourner un image revien
à la diminueée en largeur
mais en la laissant a son centre
tu peux soit le faire en interpolation de mouvement
pour ce faire tu crer ton illu
tu la converti en symbôle (F8)
en veillant a metre l'alignement au centre
tu choisi graphic dans le type
et tu le nome "Mon Logo"
tu cré un nouvel élément et tu met dans le layer de celui-ci ton symbôle graphique "Mon Logo"
tu le met ou tu veux dans ta scene et tu rajoute un certain nombre d'image
(plus il y a d'image plus ton anim sera fluide et lente)
metons 10 images
tu crée une image clef
puis en image 5 tu cré une nouvelle image clef
tu prend toute tes image et tu vas dans le panneau propriété et choisi interpolation-> mouvement
en theorir tes image son en bleu dans ta ligne du temps
puis en image 5 tu diminue la largeur de ton illu pour qu'il ne reste quasi plus rien
et si tu joue ton anim tu auras l'illusion que ton logo tourne sur lui même
---------------------------------
2 ème méthode en action scrip
celle ci a l'avantage de ne pas devoir être répétée.
car une fois le scrip fait tu peut l'utisié pour n'importe quel image
MovieClip.prototype.TurnLogo = function(Logo, Times) {
Recto = this.createEmptyMovieClip("Recto", 0);
Recto.attachMovie(Logo, "Nlogo", 0);
//on crée limage à l'endroi
Verso = this.createEmptyMovieClip("Verso", 1);
Verso.attachMovie(Logo, "Nlogo", 0);
Verso.Nlogo._x = Verso.Nlogo._width;
Verso.Nlogo._xscale = -100;
//on crée limage à l'envers
Recto._visible = false;
Verso._visible = false;
//on les rend toutes deux invisible
NbQuartTour = 0;
// un tour complet egale 4 Quart de tour
// on initialise la valeur de nombre de quart de tour(NbQuartTour)à Zero
CountTimes = 0;
// Times egale le temps maxi pour faire un quart de tour
// on initialise le conteur de temps(CountTimes)à Zero
LogoLg = this._width;
// on recupere la largeur de l'image
Step = LogoLg/Times;
// on se sert de la largeur de l'image
// pour calculer le pas de diminution
// et aussi le déplacement de l'image
//
// pour donner l'illusion que l'image
// tourne sur elle même, on la dimunie
// d'un pas tout en la maintenat au centre
//
this.onEnterFrame = function() {
if (NbQuartTour<4) {
if (NbQuartTour == 0) {
Recto._visible = true;
// 1er quart de tour, on ne vois que le recto
Verso._visible = false;
// pas le verso
// on dininue l'image en la maintenant au centre
if (CountTimes<Times) {
//tant qu'on a pas fait un quart de tour
//
Scale = LogoLg-(CountTimes*Step);
// la taille est donc de :
// la taille d'origine moins
// le nombre de pas fois le pas
Xpos = (CountTimes*Step)/2;
// la position est donc de :
// le nombre de pas fois le pas
// divisé par 2
// pour qu'une fois reduite a zero en largeur
// l'image soit bien au centre
} else if (CountTimes == Times) {
// quant on a fait un quart de tour
//
NbQuartTour++;
// on incrémante le conteur de quart de tour
Scale = LogoLg;
// on remet la taille d'origine
CountTimes = 0;
// on reinitialise le conteur temps
Xpos = 0;
// et on repositionne l'image a zero
}
}
if (NbQuartTour == 1) {
Recto._visible = false;
// 2eme quart de tour, on ne vois pas le Recto
Verso._visible = true;
// mais bienle verso
// on elargi l'image en la maintenant au centre
if (CountTimes<Times) {
Scale = LogoLg-((Times-CountTimes)*Step);
// la taille ici est donc
// de la largeur de l'image moins
// le temps total moins le nombre de pas
// (ce qui a pour effet de compter à rebours)
// fois le pas
Xpos = ((Times-CountTimes)*Step)/2;
// la position ici est donc
// de la largeur de l'image moins
// le temps total moins le nombre de pas
// fois le pas le toput divisé par 2
} else if (CountTimes == Times) {
NbQuartTour++;
Scale = LogoLg;
CountTimes = 0;
Xpos = 0;
// on reinisialise les valeur
// et on comte un quar de tour en plus
}
}
if (NbQuartTour == 2) {
Recto._visible = false;
Verso._visible = true;
// c'est pareil que pour le 1er quart de tour mais avec le Verso
if (CountTimes<Times) {
Scale = LogoLg-(CountTimes*Step);
Xpos = (CountTimes*Step)/2;
} else if (CountTimes == Times) {
NbQuartTour++;
Scale = LogoLg;
CountTimes = 0;
Xpos = 0;
}
}
if (NbQuartTour == 3) {
Recto._visible = true;
Verso._visible = false;
//c'est pareil que pour le 2ème quart de tour mais avec le Recto
if (CountTimes<Times) {
Scale = LogoLg-((Times-CountTimes)*Step);
Xpos = ((Times-CountTimes)*Step)/2;
} else if (CountTimes == Times) {
NbQuartTour++;
Scale = LogoLg;
CountTimes = 0;
Xpos = 0;
}
}
this._width = Scale;
// on assigne les parametre de largeur à notre clip
this._x = Xpos;
// on assigne les parametre de position sur l'axe x à notre clip
CountTimes++;
// on compte le nombre de pas pour faire un quart de tour
} else if (NbQuartTour == 4) {
NbQuartTour = 0;
}
};
};
//
//
// Faire un symbole en l'allignant sur au coins sup/gauche
// lui donner une valeur de liaison dans la bibliotheque
// ici "MonLogo"
//
// crer un clip vide
// lui donner un nom
// ici "LeLogoquitourne"
LeLogoquitourne = _root.createEmptyMovieClip("Cl_logo", 0);
//
// pour lancer le prototype
// assigne le prototype au clip nouvelement créer
// passer en parametre le nom de l'image
// donc du symbôle, ici "MonLogo"
// et le temps pour faire un quart de tour
// ici 20
LeLogoquitourne.TurnLogo("MonLogo", 20);
Bonne chance
j'espere avoir été clair
Réponses
|