Forums Développement Multimédia

Aller au contenu

créer un slider qui controle l'animation

PAO Flash

9 réponses à ce sujet

#1 sly006

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 251 messages

Posté 12 June 2004 - 06:45 AM

hello

je voudrais créer un slider qui me permet de controler mon animation de manière à ce que l'on puisse se déplacer car au slider (curseur dragable) dans l'animation comme bon nous semble


merci pour les tuyaux :wink:

#2 sly006

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 251 messages

Posté 12 June 2004 - 14:02 PM

personne peut m'aider ? :cry:

#3 sly006

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 251 messages

Posté 14 June 2004 - 14:30 PM

je pense que personne ne sait faire ou ne m'a compris

dans ce cas, je vous montre un exemple de ce que je voudrais réaliser

http://www.educnet.education.fr/bio/animed...sionerveuse.htm

Le slider que je veux faire est dans l'anim en haut et à droite. n controle l'animation comme on veut

Merci pour ceux qui auraient une ID

#4 slagtounet

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 416 messages

Posté 14 June 2004 - 15:54 PM

Voilà un FLA. je l'ai commenté pour que tu comprennes !

La partie la plus difficile c'est lorsque je calcul la frame à laquelle il faut aller en fonction de la position du slide. Mais c'est un produit en croix tout bete

Fichier(s) joint(s)



#5 sly006

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 251 messages

Posté 14 June 2004 - 17:10 PM

merci

1- comment faire pour que le curseur se déplace qd l'anima est lue ?

peut être un truc du genre on enterframe ?

2- peux tu me dire à quoi sert : nFrame.autoSize = true;

et 3- le reste du code et notamment pôurquoi on divise par 400 ?

function ChangeFrame()
{
var _l1 = Math.round(Math.round(Slider._x - 74) * 100 / 400);
Clip.nFrame.text = _l1;
gotoAndStop(_l1);
} // End of the function
stop();
Slider.onPress = function ()
{

IDChangeFrame = setInterval(ChangeFrame, 24);
this.startDrag(false, 78, this._y, 472, this._y);
};
Slider.onRelease = Slider.onReleaseOutside = function ()
{
clearInterval(IDChangeFrame);
this.stopDrag();
};


merci merci laugh.gif

#6 slagtounet

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 416 messages

Posté 14 June 2004 - 22:59 PM

Mais y a pas les commentaires ? J'ai tout commenté pourtant ...

nFrame.autosize = true ça sert à faire en sorte que même s'il y a 10 millions de caractère dans le TextFields (champ de texte) nFrame, et bien ce champ de texte s'agrandisse automatiquement de façon a pouvoir contenir ses 10 millions de caractères, et qu'ils soient visible.

Si tu l'enlève, tu ne pourras voir qu'une partie des 10 millions de caractères. Essaye !

Le onPress signifie lorsqu'on click sur le bouton Slide.
Le onRelease et onReleaseOutside signifie lorsqu'on a clické, et qu'on relâche le bouton de la souris (respectivement sur le clip, et en dehors du clip).

Ce qu'il y a dedans, tu peux faire une recherche dans le dico AS à MovieClip.startDrag et MovieClip.stopDrag.

Dans le onPress, on active la fonction ChangeFrame qui va se lancer toute les 24 millisecondes.
Dans le onRelease, on désactive la fonction ChangeFrame.

Dans la fonction ChangeFrame, déjà on calcul la variable _l1
c'est un produit en croix. Je t'explique mon résonnement.

On a 100 frame pour l'animation à placer sur une distance de 400 (la barre peut se déplacer sur 400 de large).

donc, pour 400 -> 100

Ensuite, lors de l'action, on aura une distance, et on cherchera la frame correspondante, c'est à dire, on aura DISTANCE -> FRAME (_l1)

Pour la distance, il faut la calculer. Déjà elle commence à 75.
Donc on Prend les coordonées du slide (Slider._x) on lui enlève 75 pour qu'au minimum, notre distance sit égal à 0.

Ensuite, il faut l'arrondir, de façon a ne pas vouloir aller sur une frame avec un nombre a virgule :
Math.round (Slider._x - 75)

Et enfin, on rajoute 1 parceque la frame minimale qu'on pourra obtenir ne sera pas 0 mais 1.
Math.round (Slider._x - 74)

Voilà, donc on a :
Math.round (Slider._x - 74) -> FRAME RECHERCHER

Produit en croix :

CODE
400                               ->      100

Math.round (Slider._x - 75) ->   _l1


Donc le produit en croix

Math.round (Slider._x - 75) * 100 = 400 * _l1

Donc : _l1 = (Math.round (Slider._x - 75)*100)/400

compris ?

En résumer :

AB = taille de la barre;
AC = Coordonées X du point C moins les coordonées X du point A
NB_FRAME = nombre de frame dans ton animation

_l1 = (Math.round(AC + 1) * NB_FRAME) / AB;

CODE
Clip.nFrame.text = _l1;

C'est tout simplement pour afficher la frame à laquelle tu te trouve dans le champ de texte nFrame qui se trouve lui-même dans le clip : "Clip".

CODE
gotoAndStop(_l1);

Ca c'est pas trop dur encore :]

#7 sly006

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 251 messages

Posté 15 June 2004 - 06:39 AM

merci pour tous tes commentaires

c bcp plus clair smile.gif

Juste un dernière question : comment peut on faire pour que le curseur se déplace qd l'anim est lue ?


Encore mille merci :wink:

#8 slagtounet

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 416 messages

Posté 15 June 2004 - 10:54 AM

Bah, après tu fait le produit en croix à l'envers, tu as la frame et tu cherche la distance...

#9 c.lemaire

    Ceinture Orange

  • Members
  • PipPipPip
  • 38 messages

Posté 27 July 2004 - 15:01 PM

Bonjour,
Je n'arrive pas à ouvrir le FLA donné en exemple.
C'est un format spécifique MX2004 ???

#10 hamsvtt

    Ceinture Blanche

  • Members
  • Pip
  • 2 messages

Posté 28 July 2014 - 10:10 AM

merci mr slagtounet est ce que vous ne pouvez pas transformer ce code en ActionScript3 et merci .



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)