Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash
Flash Forum d'entraide sur la technologie Flash (Cours, FAQs, Sources)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/06/2008, 17h59   #1
Membre du Club
 
Inscription : juillet 2006
Messages : 246
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 246
Points : 50
Points : 50
Par défaut Glisser à l'aide de la souris un MC et sur un seul axe

Bonjour, et je tiens à vous remercier de soutient que vous portez à mon travaille. Et voici donc le soucis

Je souhaiterais déplacer un MC à l'aide de la souris. Mais le MC ne se déplacera que sur l'axe Y. Ses coordonées axe X ne doivent pas changer.

J'utilise AS 2.0 - FLASH C3

J'utilise ce code
Code :
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
35
36
37
38
39
40
41
42
43
44
45
// ce code crée une interaction à une action de glisser-déposer à l'aide d'une fonction de suivi de souris
// (deuxième technique) 
// circle est un objet d'affichage (par ex. une instance de MovieClip ou de Sprite).
 
import flash.events.MouseEvent;
 
var offsetX:Number;
var offsetY:Number;
 
// cette fonction est appelée lors de l'appui sur le bouton de la souris.
function startDragging(event:MouseEvent):void
{
    // enregistrer la différence (décalage) entre le point où était
    // le curseur lors de l'appui sur le bouton et les coordonnées x,y
    // du cercle lors de cet appui.
    offsetX = event.stageX - circle.x;
    offsetY = event.stageY - circle.y;
 
    // ordonner à Flash Player d'écouter l'événement mouseMove
    stage.addEventListener(MouseEvent.MOUSE_MOVE, dragCircle);
}
 
// cette fonction est appelée lors du relâchement du bouton de la souris.
function stopDragging(event:MouseEvent):void
{
    // ordonner à Flash Player de cesser d'écouter l'événement mouseMove
    stage.removeEventListener(MouseEvent.MOUSE_MOVE, dragCircle);
}
 
// cette fonction est appelée à chaque mouvement de souris,
// tant que le bouton gauche reste appuyé.
function dragCircle(event:MouseEvent):void
{
    // déplacement du cercle à l'emplacement du curseur, en préservant
    // le décalage entre l'emplacement du curseur et 
    // l'emplacement de l'objet déplacé.
    circle.x = event.stageX - offsetX;
    circle.y = event.stageY - offsetY;
 
    // ordonner à Flash Player d'exécuter un rafraîchissement d'écran après cet événement.
    event.updateAfterEvent();
}
 
circle.addEventListener(MouseEvent.MOUSE_DOWN, startDragging);
circle.addEventListener(MouseEvent.MOUSE_UP, stopDragging);
Celui ci ne fonctionne pas

Code :
Impossible de charger la classe ou l'interface 'flash.events.MouseEvent'.
Encore merci à vous.
Rifton007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 16h53   #2
Rédacteur/Modérateur
 
Avatar de beekeep
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 1 606
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 1 606
Points : 2 233
Points : 2 233
Salut,

je sais pas ce qui va pas dans ton code, mais pour faire ce que tu veux le code suivant suffit :

Code :
1
2
3
4
5
6
7
8
this.mcClip.onMouseDown = function()
{
    startDrag(this, false, 0, this._y, Stage.width - this._width, this._y); 
};
this.mcClip.onMouseUp = function()
{
    this.stopDrag();
};
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 20h01   #3
Membre du Club
 
Inscription : juillet 2006
Messages : 246
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 246
Points : 50
Points : 50
Super l'ami, j'ai un peu adapté le code à mon usage.
Mille merci à toi
Rifton007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h06.


 
 
 
 
Partenaires

Hébergement Web