Bonjour à tous,

J'essaie de faire une carte de navigation sur laquelle il y a plusieurs objets pour accéder à d'autres parties du site.

Le code SA3 que je mets ci-dessous est simplifié. Je n'ai mis que la partie qui bug.

Il comporte deux scènes.

La scène 1 il y a la carte avec les boutons. Quand on clique sur un des boutons, on passe la scène deux.
La scène 2 un bouton pour revenir à la scène 1

Le code marche le premier coup. C'à d quand on passe une première fois de la scène 1 à la scène 2.

Mais quand on répète plusieurs fois le va et vient entre les scènes. Le déplacement de la carte s'accélère. Et je ne sais pas pourquoi !!!!

Si quelqu'un peut me de dire où est mon erreur ça marangerai bien !!!

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
stop();
 
import flash.events.Event;
import flash.display.Sprite;
 
var pas_x:Number = new Number();
var pas_y:Number = new Number ();
var cadreChargeur:Sprite
var coordonneesX : Array = new Array(60,170,300)
var coordonneesY : Array = new Array(70,150,190)
 
//zone de clique (rose)
var zoneClick:Sprite = new Sprite();
 
zoneClick.graphics.lineStyle(1,0xea5723,1);
zoneClick.graphics.beginFill(0xff6699,0.1);
zoneClick.graphics.drawRect(0,0,360,240);
zoneClick.x=0;
zoneClick.y=0;
 
addChild (zoneClick);
 
// bouton pour change de scène (en bleu)
for (var i=1; i<=3; i+=1){
 
	cadreChargeur = new Sprite();
 
	cadreChargeur.graphics.beginFill(0x115599,1)
	cadreChargeur.graphics.drawCircle(0,0,50)
 
	cadreChargeur.x=coordonneesX[i-1];
	cadreChargeur.y=coordonneesY[i-1];
 
	zoneClick.addChild(cadreChargeur)
 
	cadreChargeur.addEventListener(MouseEvent.MOUSE_OVER,misePause);
	cadreChargeur.addEventListener(MouseEvent.MOUSE_OUT,annulePause);
	cadreChargeur.addEventListener(MouseEvent.CLICK,aller)
}
 
 
//---ECOUTEURS
 
zoneClick.addEventListener(Event.ENTER_FRAME,deplacerCarte);
 
 
//-----FONCTIONS
 
function misePause (evt:Event){
	zoneClick.removeEventListener(Event.ENTER_FRAME,deplacerCarte);
}
 
function annulePause (evt:Event){
	zoneClick.addEventListener(Event.ENTER_FRAME,deplacerCarte);
}
 
 
function deplacerCarte (evt : Event) {
	pas_x= 3;
	pas_y= 3;
	if(zoneClick.x>0) {
	if (mouseX<520){zoneClick.x+=pas_x;}
	if (mouseX>530){zoneClick.x-=pas_x;}}else{zoneClick.x=0}
 
 
	if(zoneClick.x<800) {
	if (mouseX<520){zoneClick.x+=pas_x;}
	if (mouseX>530){zoneClick.x-=pas_x;}}else{zoneClick.x=800}
 
	if (zoneClick.y<390) {
	if (mouseY<160){zoneClick.y+=pas_y;}
	if (mouseY>250){zoneClick.y-=pas_y;}}else{zoneClick.y=390}
 
	if (zoneClick.y>0) {
	if (mouseY<160){zoneClick.y+=pas_y;}
	if (mouseY>250){zoneClick.y-=pas_y;}}else{zoneClick.y=0}
	}
 
function aller (evt:Event){
	zoneClick.removeEventListener(Event.ENTER_FRAME,deplacerCarte);
	cadreChargeur.removeEventListener(MouseEvent.MOUSE_OVER,misePause);
	cadreChargeur.removeEventListener(MouseEvent.MOUSE_OUT,annulePause);
	cadreChargeur.removeEventListener(MouseEvent.CLICK,aller)
	zoneClick.removeChild (cadreChargeur);
 
	for (var j=1; j<=3 ;j++){
	while (cadreChargeur.numChildren > 0) cadreChargeur.removeChildAt(0);
	}
 
	removeChild(zoneClick);
 
	gotoAndStop(1,"Scene 2");
	}