Tutoriels - Flash - Programmation fichier source



Relier deux points dynamiquement (écrit par Jérémie )

comment relier deux objets en temps réel ?

intro

cette méthode est très simple si on connait un peu flash et elle sert vraiment beaucoup. des moteurs flash 3D aux interfaces & animations.

prérequis

comme pour d'autres tutoriels du site , il vaudrait mieux savoir utiliser le drag'n drop. lisez attentivement le tutoriel sur ce sujet dans le site.
c'est tout ce dont vous aurez besoin pour comprendre ce tutoriel.

étape 1 - symboles

créez un movie clip draggable, appelez le 'point' (nom d'instance 'point1'). faites un copier-coller de point. donnez au nouveau le nom d'instance 'point2'

dessinez un trait, et modifiez ses propriétés (ctrl+alt+I) pour qu'il fasse 100x100. c'est important pour la suite, les calculs sont simplifiés. convertissez le en symbole, appelez le trait (nom d'instance 'trait')
étape 2 - bouton

voici le code que vous devez avoir inséré dans le bouton draggable.

on (press) {

deplacement = true;
startDrag (this, true);
}
on (release, releaseOutside) {
deplacement = false;
stopDrag ();
}



on la variable 'deplacement' sert à savoir par la suite si l'objet est en déplacement (et donc s'il faut recalculer la ligne). le problème, c'est qu'en cliquant et déplaçant très rapidement, on peut avoir deux points non liés, l'avantage, c'est que lorsqu'on ne touche pas aux points, on ne perd pas de ressources en calculant inutilement.

étape 3 - code


lorsqu'un des points est en déplacement, on redimensionne le trait, puis on le place entre les points 1 et 2. ce sont des mathématiques simples, avec des coordonnées.
sur la scène, selectionnez 'point', bouton droite > actions.

onClipEvent (enterFrame) {
if (deplacement) {
// if (deplacement) équivaut à if (deplacement = true)
_root.trait._xscale = _root.point1._x - _root.point2._x;
_root.trait._yscale = _root.point1._y - _root.point2._y;
_root.trait._x = (_root.point1._x + _root.point2._x)/2;
_root.trait._y = (_root.point1._y + _root.point2._y)/2;
}
}



étape 4 - après propos

c'est déjà terminé. pour ce tutoriel on n'a besoin que d'un trait, pour des opérations plus complexes, il faudra en utiliser plusieurs ou utiliser 'duplicate movie clip'.


Tous droits réservés 2003 Jérémie Cook