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

ActionScript 3 Discussion :

Variation de vitesse


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 266
    Par défaut Variation de vitesse
    Me revoilou !!

    J'ai un souci (encore un !). Je souhaiterai déplacer une clip (pion) d'un point A à un point B. Disons de 0 à 1000 en x.

    J'aimerai faire varier la vitesse tous les 100 px et tout ça de manière aléatoire. Alors j'ai fait un truc lourd avec tween mais j'ai 4 clips comme ça !!! Je rappelle que je débute alors soyez sympa ;-)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    stop();
    import fl.transitions.*;
    import fl.transitions.easing.*;
    var tab:Array = new Array();
    var Start:Number = 1;
    var End:Number = 10;
    for(var ind=Start; ind<=End; ind++)
    tab.push(ind);
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    function move_1A () {
    var mvt1A:Tween;
    var pos1A=pion1.x
    var vit1A=tab[Math.round (Math.random() * (tab.length-1))];
    mvt1A = new Tween(pion1,"x",Regular.easeOut,pos1A,100,vit1A,true);
    mvt1A.addEventListener(TweenEvent.MOTION_FINISH ,move_1B);
    }
     
    function move_1B (evt:TweenEvent) {
    var mvt1B:Tween;
    var pos1B=pion1.x
    var vit1B=tab[Math.round (Math.random() * (tab.length-1))];
    mvt1B = new Tween(pion1,"x",Regular.easeOut,pos1B,200,vit1B,true);
    mvt1B.addEventListener(TweenEvent.MOTION_FINISH ,move_1C);
    }
     
    function move_1C (evt:TweenEvent) {
    var mvt1C:Tween;
    var pos1C=pion1.x
    var vit1C=tab[Math.round (Math.random() * (tab.length-1))];
    mvt1C = new Tween(pion1,"x",Regular.easeOut,pos1C,300,vit1C,true);
    mvt1C.addEventListener(TweenEvent.MOTION_FINISH ,move_1D);
    }
     
    function move_1D (evt:TweenEvent) {
    var mvt1D:Tween;
    var pos1D=pion1.x
    var vit1D=tab[Math.round (Math.random() * (tab.length-1))];
    mvt1D = new Tween(pion1,"x",Regular.easeOut,pos1D,400,vit1D,true);
    mvt1D.addEventListener(TweenEvent.MOTION_FINISH ,move_1E);
    }
     
    function move_1E (evt:TweenEvent) {
    var mvt1E:Tween;
    var pos1E=pion1.x
    var vit1E=tab[Math.round (Math.random() * (tab.length-1))];
    mvt1E = new Tween(pion1,"x",Regular.easeOut,pos1E,500,vit1E,true);
    mvt1E.addEventListener(TweenEvent.MOTION_FINISH ,move_1F);
    }
     
    function move_1F (evt:TweenEvent) {
    var mvt1F:Tween;
    var pos1F=pion1.x
    var vit1F=tab[Math.round (Math.random() * (tab.length-1))];
    mvt1F = new Tween(pion1,"x",Regular.easeOut,pos1F,600,vit1F,true);
    mvt1F.addEventListener(TweenEvent.MOTION_FINISH ,move_1G);
    }
     
    function move_1G (evt:TweenEvent) {
    var mvt1G:Tween;
    var pos1G=pion1.x
    var vit1G=tab[Math.round (Math.random() * (tab.length-1))];
    mvt1G = new Tween(pion1,"x",Regular.easeOut,pos1G,700,vit1G,true);
    mvt1G.addEventListener(TweenEvent.MOTION_FINISH ,move_1H);
    }
     
    function move_1H (evt:TweenEvent) {
    var mvt1H:Tween;
    var pos1H=pion1.x
    var vit1H=tab[Math.round (Math.random() * (tab.length-1))];
    mvt1H = new Tween(pion1,"x",Regular.easeOut,pos1H,800,vit1H,true);
    mvt1H.addEventListener(TweenEvent.MOTION_FINISH ,move_1I);
    }
     
    function move_1I (evt:TweenEvent) {
    var mvt1I:Tween;
    var pos1I=pion1.x
    var vit1I=tab[Math.round (Math.random() * (tab.length-1))];
    mvt1I = new Tween(pion1,"x",Regular.easeOut,pos1I,900,vit1I,true);
    mvt1I.addEventListener(TweenEvent.MOTION_FINISH ,move_1J);
    }
     
     
    function move_1J (evt:TweenEvent) {
    var mvt1J:Tween;
    var pos1J=pion1.x
    var vit1J=tab[Math.round (Math.random() * (tab.length-1))];
    mvt1J = new Tween(pion1,"x",Regular.easeOut,pos1J,1000,vit1J,true);
    mvt1J.addEventListener(TweenEvent.MOTION_FINISH ,finish1);
    }
     
    function finish1 (evt:TweenEvent) {
    trace("FINI")
    }
     
    move_1A();
    C'est très lourd !! Il doit y avoir plus court !!

    Merci de votre aide précieuse...

    Coincoin22

  2. #2
    Membre éprouvé
    Profil pro
    Développeur multimédia
    Inscrit en
    Juin 2009
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Juin 2009
    Messages : 130
    Par défaut
    Hello,

    Heureusement pour nous, on peut faire plus simple (où au moins, plus lisible et plus flexible)

    Code AS3 : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
     
    stop();
    import fl.transitions.*;
    import fl.transitions.easing.*;
    private var cpt:int = 0;	//compte le nombre de mouvement
    move();//début de l'animation
     
    function move(e:TweenEvent = null):void {
    	if(cpt<10){
    		var duration:int = Math.random() * 10;	//entier compris entre 0 et 10	vit1A dans ton code
    		var posInitX:int = pion1.x;				//position de départ du pion
    		var targetX:int = cpt * 100;			//position à l'arrivé de ton pion
    		mvt = new Tween(pion1, "x", Regular.easeOut, posInitX, targetX, duration);	
    		mvt.addEventListener(TweenEvent.MOTION_FINISH ,move);
    	}else {
    		finish();
    	}
    	cpt ++;	//tu incrémentes ton compteur
    }
     
    /**
     * Fin de l'animation
     */		
    private function finish():void 
    {
    	/*	Fin	*/
    }

    Je ne me souviens plus très bien comment on utilise Tween, mais il semblerait que le paramètre que tu as mis à true précise que l'argument "duration" soit considéré en milliseconde au lieu de seconde. Donc peut-être qu'il faudrait multiplié par 1000 ta duration...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 266
    Par défaut
    C'est ce qui s'appelle du travail vite fait bien fait !!

    Mais étant donné que j'ai 4 pions à faire bouger comme ça, je dois répéter ça 4 fois aussi ??

    Ahaha ! Je te donne du boulot là ! ;-)

    Merci de ton aide.

    A noter qu'il faut déclarer le Tween et que "private" renvoit des erreurs de type: 1013: The private attribute may be used only on class property definitions. Il faut mieux mettre le compteur à 1 et non à 0 à mon sens et dans la fonction cpt<11 sinon il s'arrête à 900.

    J'ai supprimé tout ça:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    stop();
    pion1.x=0;
    import fl.transitions.*;
    import fl.transitions.easing.*;
    var mvt:Tween;
    var cpt:int = 1;	//compte le nombre de mouvement
    var tab:Array = new Array();
    var Start:Number = 1;
    var End:Number = 10;
    for(var i=Start; i<=End; i++)
    tab.push(i);
     
    move();//début de l'animation
     
    function move(e:TweenEvent = null):void {
    	if(cpt<11){
    		var duration:int = tab[Math.round (Math.random() * (tab.length-1))]; // entier compris entre Start:Number et End:Number
    		var posInitX:int = pion1.x;				//position de départ du pion
    		var targetX:int = cpt * 100;			//position à l'arrivé de ton pion
    		mvt = new Tween(pion1, "x", Regular.easeOut, posInitX, targetX, duration);	
    		mvt.addEventListener(TweenEvent.MOTION_FINISH ,move);
    	}else {
    		finish();
    	}
    	cpt ++;	//tu incrémentes ton compteur
    }
     
    /**
     * Fin de l'animation
     */		
    function finish():void 
    {
    	/*	Fin	*/
    }
    J'ai gardé mon idée de tableau encore plus flexible.

    Sinon c'est parfait joli boulot... Je vais me mettre sérieusement à as3 (Y'a du boulot !!!!!!)

Discussions similaires

  1. [SAX] Vitesse contre place en mémoire
    Par Dinaïz dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 15/10/2004, 13h37
  2. Vitesse du CPU, quantité de RAM... en C
    Par dclink dans le forum C
    Réponses: 4
    Dernier message: 07/07/2003, 20h48
  3. Comment repérer la vitesse du processeur?
    Par Paradam dans le forum Assembleur
    Réponses: 14
    Dernier message: 28/06/2003, 10h43
  4. Vitesse de compilation
    Par srvremi dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/07/2002, 16h49
  5. Vitesse de la mémoire vidéo
    Par Anonymous dans le forum x86 16-bits
    Réponses: 3
    Dernier message: 06/06/2002, 20h20

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