begin process at 2008 07 04 14:23:11
1 204 656 membres
187 nouveaux aujourd'hui
14 118 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

APPLICATION DE ROTATION A UN CLIP SELON LA POSITION D'UN AUTRE CLIP


Information sur la source

Catégorie :ActionScripts Classé sous : rotation, souris, arctan, hypotenuse, sqrt Niveau : Initié Date de création : 09/08/2006 Date de mise à jour : 10/08/2006 01:16:31 Vu / téléchargé: 4 491 / 955

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

Description

Salut,
Je sais qu'on as plutot l'habitude de me voir sur delphifr, mais pour une fois, un petit flash/as ça fait pas de mal.

ici, bien que de nombreuses sources fassent reference a cette technique, il ne s'agit ni plus ni moins d'appliquer une rotation
a un clip par rapport a une position X,Y donnée (curseur de souris, clip, ect...)

ici, le clip Compas contient un code (calque AS) qui calcul l'angle d'inclinaison de son centre par rapport au curseur de la souris.
il applique cet angle a la propriété _rotation de son clip-enfant "_arrow" et affiche l'angle dans son champ texte "_atext".
il calcul egalement la distance entre le curseur et son centre et redimensionne (scale) "_arrow" si cette distance est inferieure
a la hauteur original de ce dernier.

les deux fonctions LineAngle et Hypot sont dans le fichier ExtMath.as.

on peu voir egalement que la fonction LineAngle retourne un angle en degrés.
la convertion Radians degrés s'effectue en multipliant les radians par 180/PI ~= 57.2958
l'angle correspond a l'angle de l'hypotenuse du triangle rectangle que forme "virtuellement" les coordonnées X,Y entrée.
Longeur = X2-X1
Hauteur = Y2-Y1
Angle radians = arctan2(Hauteur, Longeur)

la distance ce calcule de la meme façon que l'on calcul l'hypotenuse d'un triangle rectangle :
Hyp = Racine carrée de (Longeur²+Hauteur²)

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

09 août 2006 23:54:01 :
correction d'une faute d'orthographe ^^
10 août 2006 01:16:31 :
modification : compas1 pointe compas2 et compas2 pointe la souris, compas2 tourne autour de compas1. tout le code est dans la premiere frame du calque AS dans l'animation principale.
  • signaler à un administrateur
    Commentaire de sirene2005 le 11/08/2006 12:52:31

    vous étes pas mal en Flash; Bravo continuer :)

  • signaler à un administrateur
    Commentaire de on_drag_on le 11/08/2006 22:01:47

    Pas mal du tout!
    En même temps si il s'agit simplement de faire une rotation d'un clip vis à vis d'un autre, j'aurais fait comme ça:

    DR = 90;
    A = 0;
    V = 50;
    onEnterFrame = function() {
    compas2._x = compas1._x + DR*Math.cos(A);
    compas2._y = compas1._y + DR*Math.sin(A);
    A += V;
    }

    c.f. la dernière partie du code. Comme ça tu peux facilement modifier le rayon et la vitesse de rotation du clip.
    a+

  • signaler à un administrateur
    Commentaire de sirene2005 le 12/08/2006 12:14:08

    Ta remarque est intéressante " ON_DRAG_ON".

  • signaler à un administrateur
    Commentaire de bibi_81 le 25/08/2006 19:07:03

    Pourquoi c'est en anglais les // ? XD

  • signaler à un administrateur
    Commentaire de scara 51 le 26/08/2006 04:02:28

    Heu je crois que Top30 avait fait une source sur ce sujet, mais en + ergonomique.

    Donc pas de note. Mé sinon c un bon début :)

    Par contre me souviens plus du nom de la source.

  • signaler à un administrateur
    Commentaire de f0xi le 16/09/2006 17:43:11 administrateur CS

    @on_drag_on :
    tout a fait, tu as raison, mais la le but que je m'etais fixé ete de recuperer directement un angle en degré pour la propriété _rotation.

    de plus, ta formule s'applique a une autre utilisation et donc pas adaptée a mon anim. du moins pas dans la fonction LineAngle.
    par contre tu aurais du voir que j'avais utiliser ce principe pour la rotation de l'un des objet autours de l'autre.


    @bibi_81 : parce que lavabo ... c'est une mauvaise habitude que j'ai pris.

    @scara 51 : je vois pas en quoi ma fonction est moins ergonomique qu'une autre ...
    vus que ça consiste juste a faire :
    objet._rotation = LineAngle(objet._x, objet._y, point._x, point._y);

    le restant n'est juste qu'une mise en application de cette fonction. d'ou peut etre l'idée qu'il est moins ergonomique qu'un autre.

    au niveau des sources, j'ai regarder pour voir si je trouvais des choses similaire et jusque la je n'ai trouver que des codes relativement douteux ...

  • signaler à un administrateur
    Commentaire de scara 51 le 17/09/2006 04:03:06

    Voilà la source :

    http://www.flashkod.com/codes/ANGLE-DISTANCE-PLACEMENT-CLIP_14166.aspx

    Si tu trouves ça douteux, c qu'il y a un souci. Par contre il n'y pas émulation du déplacement du centre de rotation par rapport au point (0,0) du movieClip que tu veux faire tourner, mais c le seul bémol de cette source.

  • signaler à un administrateur
    Commentaire de mobman02 le 06/03/2007 14:33:24

    Le fichier .as externe pour des fonctions si courte je l'ai juste supprimer perso,
    j'avais juste besoin du code pour connaitre la direction vers une cible, ça marche nickel merci.

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS