class MoveImage { //private: /*Regardez d'abord les fonctions public, c'est plus bas*/ /*Ici j'initialise les variables*/ private var $speed =0; private var $low_speed =0; private var $pnt_critique =0; private var $ralenti_dist =0; private var $k = 0; private var $interval_id=''; private var $target =''; private function deplace_normal(plus_ou_moins:Boolean) /*ajoute ou soustrait $speed au _x du Movie Clip */ { if(plus_ou_moins)/*si c'est true on ajoute*/ { $target._x +=$speed; } else /*sinon on soustrait*/ { $target._x -=$speed; } } private function ralenti(plus_ou_moins:Boolean) /*ajoute $low_speed calculé par rapport à la distance entre le point d'arrivé et _x du Movie Clip*/ { if(plus_ou_moins)/*Si c'est true , on ajoute $low_speed (mouvement à droite)*/ { $low_speed = $k*($target._x - $pnt_critique)*($target._x - $pnt_critique); /*$low_speed devient de plus en plus petit.*/ if($low_speed <0.5) $low_speed =0.5; /*si c'est trop petit on le met à 0.5 sinon des fois ca s'arrête au milieu...*/ $target._x += $low_speed; } else /*Sinon c'est on soustrait $low_speed (mouvement à gauche)*/ { $low_speed = $k*($target._x - $pnt_critique)*($target._x - $pnt_critique); if($low_speed <0.5) $low_speed =0.5; $target._x -= $low_speed; } } private function stop_mc() { $target._x =$pnt_critique; clearInterval($interval_id); /*supprime l'animation actuelle*/ } private function Move_mc_plus() /*fait bouger le Movie clip à droite.*/ { if($target._x <($pnt_critique - $ralenti_dist)) /*Avant de ralentir, ça bouge normalment*/ { deplace_normal(true); /*Boolean "plus_ou_moins" si c'est "true" ça bouge à droite.*/ } else if($target._x>=($pnt_critique - $ralenti_dist) && $target._x<$pnt_critique) /*le Movie Clip entre dans la distance où il ralentit.*/ { ralenti(true); /*Boolean "plus_ou_moins" si c'est "true" ça bouge à droite.*/ } else if($target._x>=$pnt_critique) /*Le Movie Clip est arrivé au point voulu.*/ { stop_mc(); } } private function Move_mc_moins() /*La même chose que Move_mc_plus() dans la direction inverse*/ { if($target._x > ($pnt_critique + $ralenti_dist)) { deplace_normal(false); } else if($target._x <= ($pnt_critique + $ralenti_dist) &&$target._x>$pnt_critique) { ralenti(false); } else if($target._x<=$pnt_critique) { stop_mc(); } } /////////////////////////////////public: public function MoveImage(target,speed,ralenti_dist) /*constructor*/ { $target = target; /*Movie Clip qui bouge*/ $speed = speed; /*la vitesse de ce Movie Clip*/ $ralenti_dist = ralenti_dist; /*la longeur où le Movie Clip se déplace en ralenti*/ $k=$speed/($ralenti_dist * $ralenti_dist); /*Courbe qui gère le ralentissement.*/ } public function Start_mc (pnt_critique) { $pnt_critique = pnt_critique; /*Le point d'arrivée du Movie Clip*/ if($target._x<$pnt_critique) /*Si le Movie Clip est à gauche du point d'arrivée, il faut que ça bouge à droite*/ { if($interval_id) /*Si l'animation est déjà lancé,*/ { clearInterval($interval_id); /*on arrête l'animation précédente.*/ } $interval_id=setInterval(this,"Move_mc_plus",80); /*On lance une animation*/ /*Movie_mc_plus() fait bouger le Movie Clip à droite.*/ } else /* Sinon, le MovieClip doit bouger à gauche.*/ { if($interval_id) { clearInterval($interval_id); } $interval_id=setInterval(this,"Move_mc_moins",80); /*"Movie_mc_moins() fait bouger le Movie Clip à gauche.*/ } } }