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 1 & ActionScript 2 Discussion :

as2 : coordonnées d'un clip en rotation et pb de bouton


Sujet :

ActionScript 1 & ActionScript 2

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Points : 6
    Points
    6
    Par défaut as2 : coordonnées d'un clip en rotation et pb de bouton
    bonjour

    je cherche a récupérer en temps réel les coordonnées physiques (sur la scène) d'un clip ajouté avec attachMovie et en rotation sur lui même.

    quand j'utilise dans mon code :

    X = monClip._x;
    Y = monClip.y;

    il me renvoie les coordonnées initiales d'attachement de mon clip sur la scène.

    quelqu'un a une idée de comment faire s'il vous plaît ?


    je cherche aussi a créer un bouton qui resterait appuyé par un clic et serait "désappuyé" par un second clic.
    je cherche à faire ceci car j'ai sur mon bouton un code qui ajoute un clip (créé en code) qui change au cours du temps.

    quelqu'un sait comment faire ?

    si je ne suis pas claire, dîtes le moi ! :-)

    merci beaucoup à tous d'avance !!!

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 165
    Points : 192
    Points
    192
    Par défaut
    voici un bout de code pour t'aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    _root.attachMovie("mc_clip", "monclip", 10);
    import mx.transitions.Tween; // on importe la classe Tween 
    import mx.transitions.easing.*; // on importe les classe easing pour les effets visuels.
     
    bouton.onRelease = function(){
    var maTween:Tween = new Tween( monclip, "_x", Regular.easeOut, 100, 200, 20, false ); // on déclare une Tween, celle ci va s'executer automatiquement.
    //coordx = monclip._x;
    }
    monclip.onEnterFrame = function(){
    	coordx = monclip._x;
    }
    mc_clip est un clip créé à la main bien évidemment, et coordx est une variable à indiquer dans "var" d'une zone de texte dynamique

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    Merci bcp pour ta réponse !

    je n'ai jamais utilisé de Tween avant et donc j'ai regardé la doc sur internet, mais ça reste encore un peu flou dans ma tête...
    et quand j'essaie d'utiliser ton code il me renvoie des erreurs disant :

    "**Erreur** C:\Documents and Settings\As\Local Settings\Application Data\Macromedia\Flash 8\fr\Configuration\Classes\mx\transitions\Tween.as: Ligne 15 : La méthode nommée 'OnEnterFrameBeacon' n'existe pas.
    static var __initBeacon = OnEnterFrameBeacon.init();

    **Erreur** C:\Documents and Settings\As\Local Settings\Application Data\Macromedia\Flash 8\fr\Configuration\Classes\mx\transitions\Tween.as: Ligne 16 : La méthode nommée 'BroadcasterMX' n'existe pas.
    static var __initBroadcaster = BroadcasterMX.initialize (Tween.prototype, true);

    **Erreur** C:\Documents and Settings\As\Local Settings\Application Data\Macromedia\Flash 8\fr\Configuration\Classes\mx\transitions\Tween.as: Ligne 148 : La méthode nommée 'OnEnterFrameBeacon' n'existe pas.
    OnEnterFrameBeacon.init();"

    alors comme je suis débutante en flash j'ai peut-être fait quelque chose de travers.... (suis très forte pour ça !)

    qu'en penses tu ?

    j'ai placé le code avec l'attachMovie là où je le faisait avant, donc sur un bouton, c'est là où j'ai aussi placé la 2e partie du code que tu me donnes.
    et j'ai placé la dernière partie dans mon onEnterFrame général.

    c'est correct ?

    et tu as une idée à propos de mon histoire de bouton ?

    encore merci !!

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 165
    Points : 192
    Points
    192
    Par défaut
    Citation Envoyé par Mosler Voir le message
    Merci bcp pour ta réponse !

    je n'ai jamais utilisé de Tween avant et donc j'ai regardé la doc sur internet, mais ça reste encore un peu flou dans ma tête...
    et quand j'essaie d'utiliser ton code il me renvoie des erreurs disant :

    "**Erreur** C:\Documents and Settings\As\Local Settings\Application Data\Macromedia\Flash 8\fr\Configuration\Classes\mx\transitions\Tween.as: Ligne 15 : La méthode nommée 'OnEnterFrameBeacon' n'existe pas.
    static var __initBeacon = OnEnterFrameBeacon.init();

    **Erreur** C:\Documents and Settings\As\Local Settings\Application Data\Macromedia\Flash 8\fr\Configuration\Classes\mx\transitions\Tween.as: Ligne 16 : La méthode nommée 'BroadcasterMX' n'existe pas.
    static var __initBroadcaster = BroadcasterMX.initialize (Tween.prototype, true);

    **Erreur** C:\Documents and Settings\As\Local Settings\Application Data\Macromedia\Flash 8\fr\Configuration\Classes\mx\transitions\Tween.as: Ligne 148 : La méthode nommée 'OnEnterFrameBeacon' n'existe pas.
    OnEnterFrameBeacon.init();"

    alors comme je suis débutante en flash j'ai peut-être fait quelque chose de travers.... (suis très forte pour ça !)

    qu'en penses tu ?

    j'ai placé le code avec l'attachMovie là où je le faisait avant, donc sur un bouton, c'est là où j'ai aussi placé la 2e partie du code que tu me donnes.
    et j'ai placé la dernière partie dans mon onEnterFrame général.

    c'est correct ?

    et tu as une idée à propos de mon histoire de bouton ?

    encore merci !!
    apparement certains fichiers ont été déplacés, il faudrait réinstaller flash à mon avis, par contre, si tu enregistre ton swf et que tu double cliques dessus sans passer par ctrl-enter, ça devrait fonctionner je pense...car flash player détient les infos dans sa propre librairie...

    je t'enverrais bien les fichiers, mais le dossier "transitions" en détient pas mal.

    pour ton bouton, voyons voir avec ça:

    pour un début, tu pourrais par exemple en créer deux (un à l'état enfoncé et l'autre à l'état normal).

    en présumant que tu les aies appelé bouton1 et bouton2 le code serait (sur chaque bouton:

    sur le bouton1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    on(release){
    bouton2._visible = true;
    bouton1._visible = false;
    }
    sur le bouton2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    on(release){
    bouton1._visible = true;
    bouton2._visible = false;
    }
    si tu travailles avec du code sur ta frame:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    bouton1._visible = true;
    bouton2._visible = false;// initialisation de l'état des boutons
     
    bouton1.onRelease = function(){
    bouton2._visible = true;
    bouton1._visible = false;
    }
     
    bouton2.onRelease = function(){
    bouton1._visible = true;
    bouton2._visible = false;
    }
    voilà, je pense que ça devrait suffire...tiens moi au courant pour les tween.

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    c'est justement qd j'exporte en .swf qu'il me sort ces erreurs...

  6. #6
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    j'ai une question, avec tout ce que je lis sur internet sur les Tween, je ne suis pas sure de bien comprendre ce que fait le code que tu me proposes.

    j'ai l'impression que les tween créent des mouvements.

    or dans mon cas, mon clip est déjà en mouvement et je voudrais uniquement être capable de connaitre sa position en permanence.

    L'animation que je réalise schématise une course de voitures, j'ai donc plusieurs voitures qui tournent sur un "même circuit", un cercle dans mon cas, c'est juste une illustration. Et j'ai des textes de saisie qui me permettent de rentrer les chrono réels de mes voitures.
    Je contrôle donc la vitesse de rotation de mes différentes voitures grâce à ça
    en disant dans mon code :
    voiture._rotation = 360/(fps*temps_en_secondes)

    ça marche très bien, elles avancent toutes à des vitesses différentes.

    là où ça se complique c'est qu'une de ces voitures est la mienne et afin de prévoir ma stratégie de course (oui j'utiliserai ça lors de courses réelles), je voudrais avoir une "portion angulaire de couronne" qui se promène juste derrière ma voiture, portion de couronne qui représente le temps nécessaire pour faire un arrêt aux stands. (et donc si une autre voiture la chevauche, je ne peux pas m'arrêter au risque de perdre un tour sur cette voiture)

    or je crée cette portion angulaire de couronne par code uniquement et je n'arrive pas "l'attacher" à ma voiture car ses coordonnées changent et je ne les connais pas.

    je voudrais donc dans mon code de création de couronne lui dire de dessiner le 1er rayon de ma couronne de mon origine de rotation vers là où se trouve ma voiture, où que ce soit.

    je ne peux pas utiliser les coordonnées initiales de ma voiture car la couronne peut être rajoutée à n'importe quel moment de "la course", juste qd on en a besoin par exemple. (apparition en cliquant sur un bouton, le fameux qui doit rester appuyé afin que justement le code puisse être mis à jour avec les positions de ma voiture)
    (et puis de tte façon, pour d'autres raisons encore très longues à expliquer, je ne peux pas créer cette couronne initialement.)
    je précise aussi que je crée cette couronne par code et non par clip car j'ai besoin à tt moment de pouvoir contrôler la portion angulaire (plus ou moins grand en fonction du temps nécessaire).
    L'origine de ma couronne doit donc en permanence être derrière ma voiture, et donc elle tourne avec elle si on veut et l'autre rayon est aussi modifiable en position mais par un autre paramètre.


    je ne sais pas si je suis très claire.
    au besoin je peux t'envoyer mon .fla si tu veux pour que tu puisses regarder plus en détails tout ce que je raconte

    (sachant que le problème exposé ici n'est pas le seul que j'ai...)

    voilà, si je ne suis pas claire et que tu veux d'autres détails, n'hésite pas à demander ! :-)

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 165
    Points : 192
    Points
    192
    Par défaut
    ok, si c'est une course de voiture, la voiture reste t'elle toujours au même endroit et le décor bouge???

    si c'est le cas, ses coordonnées seront toujours identiques, de même, si cette voiture a été créée avec un clip et qu'elle bouge selon ce clip, ton clip sur la scène reste à mon sens aux même coordonnées non?

    à moins que tu voies tout du dessus...

    sinon, le code fournit (en oubliant le tween) devrait fonctionner, il faut juste que la demande de coordonnées soit dans la fonction onEnterFrame de ton clip je pense....

  8. #8
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    oui c'est une course de voiture mais juste une schematisation d'une course reelle donc je vois tout de dessus et j'ai des petites voitures qui tournent en rond sur elles meme
    et je rentre les chronos a la main pour changer les vitesses. donc mes voitures bougent en permanence.
    voila une capture d'ecran du .swf.

    la couronne rouge est le clip cree en code qui doit rester derriere ma voiture bleue tt le temps et qui pour l'instant demarre de la ligne de depart.
    Images attachées Images attachées  

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 165
    Points : 192
    Points
    192
    Par défaut
    si ta question initiale est bien de vouloir connaître les coordonnées (j'espère avoir bien compris) le code devrait être:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    voitureA.onEnterFrame = function(){
    var coordx = voitureA._x;
    var coordy = voitureA._y;
    }
    ça devrait fonctionner

  10. #10
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    oui c'est bien ca, je veux uniquement pouvoir recuperer les coordonnees de ma voiture bleue pour les reutiliser ailleurs dans le code et la premiere chose que j'ai essaye c'est le code que tu viens de me donner ._x et ._y mais ca me redonne tjs les coordonnees initiales de l'attachMovie....

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 165
    Points : 192
    Points
    192
    Par défaut
    je te mets en pièce jointe un fla qui récupère les coordonnées d'un clip en startdrag, ça revient normalement au même que pour tout autre évènement.

    tes voitures sont bien dirigées par un évènement onPress je suppose, ce n'est pas juste un clip qui tourne sur lui même en mode création que tu as placé sur la scène???

    vois plutôt le fla....je place également le swf
    Fichiers attachés Fichiers attachés

  12. #12
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    merci ! :-)
    je regarde ca

    en fait, je sais pourquoi il me renvoie tout le temps la meme chose, enfin je pense. il me renvoie la position de la petite croix noire dans le clip, qui dans mon cas est placee au centre de rotation de ma voiture, donc forcement "elle ne bouge pas"....

  13. #13
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    euh.. je ne peux pas ouvrir le .fla, ta version de flash doit etre plus recente que la mienne, je suis sur flash 8...

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 165
    Points : 192
    Points
    192
    Par défaut
    bein oui si c'est juste un clip qui tourne sur lui même, sa position ne change pas, c'est ce que j'essayais d'expliquer, désolé si je n'étais pas clair de ce côté....

    bonne continuation

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 165
    Points : 192
    Points
    192
    Par défaut
    que ce que ce....lol désolé, mon cotat est dépassé qu'ils disent....

    voici un lien ou j'ai déposé le flahttp://home.euphonynet.be/edweb/star...oordFLASH8.fla

  16. #16
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    merci :-)

  17. #17
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    merci ! :-)

  18. #18
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    euh j'ai une autre question...

    j'ai modifie mon clip toujours en rotation de sorte a pouvoir determier ses coordonnees, j'ai donc dans mon code :

    dangle = 0.05
    voiture._x = centre._x - rayon*Math.cos(angle);
    voiture._y = centre._y - rayon*Math.sin(angle);
    angle +=dangle;

    dans ce cas ma voiture tourne tres bien, pas de soucis.

    sauf que j'aimerai pouvoir controler l'angle de rotation afin que ma voiture effectue bien un tour sur ma scene en autant de temps que ma voiture reelle.

    je voudrai donc avoir :
    dangle = (360/(fps*tps_en_secondes_au_tour))*Math.PI/180; // angle en radians

    et la ca ne marche plus...

    si je demande l'affichage de dangle dans un texte dynamique il me renvoie bien une valeur numerique mais elle est apparemment inutilisable pour dangle...
    et pourtant 360/(fps*tps_en_secondes_au_tour) est utilisable puisque c'est la valeur que je donnais avant a :

    voiture._rotation = 360/(fps*tps_en_secondes_au_tour) et ca marchait tres bien....

    tu as une idee de pourquoi ca ne marche pas s'il te plait ?

  19. #19
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 165
    Points : 192
    Points
    192
    Par défaut
    non, désolé, mais je ne vois pas...

    envoie ton fla pour voir si tu veux...

  20. #20
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    ok, voilà mon .fla, tu y trouveras sans doute des erreurs, peut-être même des incohérences car à force de trafiquer mon code pour trouver une solution des erreurs se créent...

    merci beaucoup pour ton aide :-)

    si tu veux plus de commentaires dans mon code (vraiment très peu dans celui que je t'envoie, n'hésite pas à demander)

    je serai sur internet demain pour sur, après je rentre en France pour une semaine pour faire les 24 heures du Mans, normalement j'aurai aussi internet au circuit, mais si jamais tu n'entends plus parler de moi pendant une semaine c'est que je n'ai finalement pas internet (ce qui serait vraiment dommage car j'aurai bien besoin que cette animation fonctionne pour le weekend de la course...)
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Calculer les coordonnées d'un point en rotation elliptique
    Par MisterG dans le forum Mathématiques
    Réponses: 4
    Dernier message: 03/01/2013, 14h19
  2. Modifier les coordonnées d'un clip
    Par cat2275 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 03/06/2010, 17h21
  3. [AS2] Inclinaison d'un clip + Masque
    Par CUCARACHA dans le forum Flash
    Réponses: 4
    Dernier message: 17/02/2007, 08h18
  4. Réponses: 4
    Dernier message: 05/12/2006, 17h02
  5. Clipping et rotation (DirectX 9)
    Par julian_ross dans le forum DirectX
    Réponses: 1
    Dernier message: 03/02/2004, 05h09

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