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 :

Pointe de flèche sur un flash permettant de dessiner


Sujet :

ActionScript 1 & ActionScript 2

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2014
    Messages : 22
    Points : 8
    Points
    8
    Par défaut Pointe de flèche sur un flash permettant de dessiner
    Bonjour
    J'ai réalisé un flash qui permet aux utilisateurs de dessiner. Mon problème est le suivant : lorsque la souris est enfoncée, c'est le début de mon trait. l'utilisateur dessine alors puis il relâche la souris pour arrêter le trait. Comment faire pour qu'une pointe de flèche apparaisse au bout du trait lorsque la souris est lâchée? ou mieux encore, est-il possible que la pointe de flèche suive le mouvement de la souris lorsque le trait est en train de grandir?
    Merci pour votre aise!
    Guietfa

  2. #2
    Membre expérimenté
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    avril 2005
    Messages
    1 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : avril 2005
    Messages : 1 410
    Points : 1 573
    Points
    1 573
    Par défaut
    Salut, j'ai la solution en as3 mais pas en as2...

    tu peux toujours adapter cette fonction as3 que j'avais faite en m'inspirant d'un code source en pascal...

    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
     
    		private function Fleche(x1:Number, y1:Number, x2:Number, y2:Number, effacer:Boolean, cancan:Graphics):void
    		{
    			var Norme:Number;
    			var cX:Number;
    			var cY:Number;
    			var Arrow:Array = new Array();
     
    			const ALength:Number = 10; //
    			const AWidth:Number = 7; //longueur et largeur de la pointe
     
    			Norme = Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
     
    			if (Norme == 0)
    				return;
    			cX = (x2 - x1) / Norme;
    			cY = (y2 - y1) / Norme;
    			Arrow[0] = new Point(x2 - cX * ALength + cY * AWidth, y2 - cY * ALength - cX * AWidth);
    			Arrow[1] = new Point(x2 - cX * ALength - cY * AWidth, y2 - cY * ALength + cX * AWidth);
    			Arrow[2] = new Point(x2, y2);
     
    			with (cancan)
    			{
    				if (effacer)
    					clear();
    				beginFill(0);
    				lineStyle(1, 0);
    				moveTo(x1, y1);
    				lineTo(x2, y2);
    				for (var i:uint = 0; i < Arrow.length; i++)
    					lineTo(Arrow[i].x, Arrow[i].y);
    				endFill();
    			}
    		}
    ci-joint le résultat.fleche.swf

    Si tu as besoin d'explications, n'hésite pas.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2014
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    Merci beaucoup mais j'ai très peu de connaissances en as2 et aucune en as3...
    J'ai tenté d'ouvrir ton swf mais j'ai le droit à une page blanche!

  4. #4
    Membre expérimenté
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    avril 2005
    Messages
    1 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : avril 2005
    Messages : 1 410
    Points : 1 573
    Points
    1 573
    Par défaut
    Trace une flèche à la souris sur la page blanche...

    @+

  5. #5
    Membre expérimenté
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    avril 2005
    Messages
    1 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : avril 2005
    Messages : 1 410
    Points : 1 573
    Points
    1 573
    Par défaut
    Après, ce n'est pas bien difficile de l'adapter en as2...
    graphics, c'est un canvas en as3. En as2, tu dessines directement sur un movieclip...
    la différence n'est pas énorme et tout à fait surmontable.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2014
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    rien ne s'écrit sur ton swf. ou alors la flèche est en blanc?

  7. #7
    Membre expérimenté
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    avril 2005
    Messages
    1 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : avril 2005
    Messages : 1 410
    Points : 1 573
    Points
    1 573
    Par défaut
    Tu te places sur la page, tu enfonces le bouton gauche de la souris, tu déplaces ta souris bouton gauche enfoncé et tu relâches.
    mouseDown,mouseMove et mouseUp...

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2014
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    Ouf, c'est bon ca fonctionne mais uniquement si j'ouvre sous mon navigateur. C'est super bien ce que tu me proposes!
    Je dois cependant faire une croix dessus. L'adaptation en as2 me semble insurmontable!

  9. #9
    Membre expérimenté
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    avril 2005
    Messages
    1 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : avril 2005
    Messages : 1 410
    Points : 1 573
    Points
    1 573
    Par défaut
    En modifiant un peu, tu as la flèche ordinaire :

    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
     
    		private function Fleche(x1:Number, y1:Number, x2:Number, y2:Number, effacer:Boolean, cancan:Graphics):void
    		{
    			var Norme:Number;
    			var cX:Number;
    			var cY:Number;
    			var Arrow:Array = new Array();
     
    			const ALength:Number = 10; //
    			const AWidth:Number = 7; //longueur et largeur de la pointe
     
    			Norme = Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
     
    			if (Norme == 0)
    				return;
    			cX = (x2 - x1) / Norme;
    			cY = (y2 - y1) / Norme;
    			Arrow[0] = new Point(x2 - cX * ALength + cY * AWidth, y2 - cY * ALength - cX * AWidth);
    			Arrow[1] = new Point(x2 - cX * ALength - cY * AWidth, y2 - cY * ALength + cX * AWidth);
     
    			with (cancan)
    			{
    				if (effacer)
    					clear();
    				lineStyle(1, 0);
    				moveTo(x1, y1);
    				lineTo(x2, y2);
    				lineTo(Arrow[0].x, Arrow[0].y);
    				moveTo(x2, y2);
    				lineTo(Arrow[1].x, Arrow[1].y);
    			}
    		}
    Fichiers attachés Fichiers attachés

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2014
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    Voici les messages d'erreur lorsque je dépose ce code:
    **Erreur** Séquence = Séquence 1, calque = Calque 1, image = 1 :Ligne 1 : Attribut utilisé en dehors de la classe.
         private function Fleche(x1:Number, y1:Number, x2:Number, y2:Number, effacer:Boolean, cancan:Graphics)//:void
    
    **Erreur** Séquence = Séquence 1, calque = Calque 1, image = 1 :Ligne 8 : Erreur de syntaxe.
         			const ALength:Number = 10; //
    
    **Erreur** Séquence = Séquence 1, calque = Calque 1, image = 1 :Ligne 9 : Erreur de syntaxe.
         			const AWidth:Number = 7; //longueur et largeur de la pointe
    
    Total des erreurs ActionScript : 3 	 Erreurs signalées : 3
    Pour les deux dernières erreurs,rien de bien terrible, par contre la première, je ne comprends pas!

  11. #11
    Membre expérimenté
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    avril 2005
    Messages
    1 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : avril 2005
    Messages : 1 410
    Points : 1 573
    Points
    1 573
    Par défaut
    déjà cancan:Graphics à remplacer par reference:MovieClip
    et with(reference) au lieu de with(cancan) après tu vois par toi-même.

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2014
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    Après avoir appliqué les modifications, l'erreur affichée reste exactement la même...

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2014
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    Désolé de revenir à la charge mais je ne parviens pas à traduire ce code en as2. peut-on me donner un coup de main?

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2014
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    il y a un truc que je ne comprends pas : comment les valeurs de x1 x2 y1 et y2 sont-elles renseignées?

  15. #15
    Membre expérimenté
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    avril 2005
    Messages
    1 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : avril 2005
    Messages : 1 410
    Points : 1 573
    Points
    1 573
    Par défaut
    Ce sont tout simplement les coordonnées des deux extrémités de ta flèche...

    @+

Discussions similaires

  1. Requete sur une table qui pointe 2 fois sur une autre
    Par Satch dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/01/2006, 08h48
  2. [Conception] Question sur un code permettant de connaître le nombre de connectés
    Par inferno66667 dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 19/12/2005, 19h49
  3. Créer un point de montage sur C:
    Par marcus333 dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 30/11/2005, 11h09
  4. Réponses: 7
    Dernier message: 21/02/2005, 13h28

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