Salut à tous,

Voilà j'ai un site à terminer en CS3 qui pompe des données sur un fichier XML.
un menu des animes de texte, de la vidéo.

Après avoir compilé je navigue dans le menu pour vérifier que tout est correct, et au bout d'une dizaine de clics Flash "quitte inopinément".
Des masques gèrent l'affichage des textes d'intros, j'ai mis pas mal d'écouteurs pour les mouseEvent, pas trop de removeEventlistener. Je ne sais pas si c'est une des causes de ce pb.

mon sxf pèse 350ko.
Je ne comprends pas trop pk çà plante, c'est relou çà me bloque pour avancer, je dois réviser tout mon code (400 lignes).

J'ai construit çà à sans trop de méthode, un fla avec la scène, un main.as qui gère les fonctions et variables, des classes qui donnent des particularités au MC que j'utilise dans le main. Un menu, des classes pour chaques types de texte.


Si qq1 a le temps de jeter un oeil pour m'orienter ce serait cool. DSL de mettre toute cette tartine de code.

le code.
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
package 
{
 
	import flash.display.*;
	import flash.text.*;
	import flash.events.*;
	import flash.geom.*;
	import gs.TweenLite;
	import gs.easing.*;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.utils.Timer;
	import flash.events.TimerEvent;
	import fl.video.FLVPlayback;
 
 
 
	////Nom de la classe/////
 
	public class Main_Docs extends MovieClip
	{
		public var leXML:XML;
		public var myLoader:URLLoader = new URLLoader();
 
		public var logo:MovieClip=new MovieClip;
		public var cont_display:MovieClip=new MovieClip;
		public var cont_menu:MovieClip=new MovieClip;
		public var cont_footer:MovieClip=new MovieClip;
		public var cont_trame:MovieClip=new MovieClip;
		public var cont_texte:MovieClip=new MovieClip;
		public var fond_trame:MovieClip=new MovieClip;
		public var cont_video:MovieClip=new MovieClip;
 
		public var cont_content:Sprite=new Sprite;
		public var cont_weedeo:Sprite = new Sprite;
		public var titre1:MovieClip;
		public var maske:MovieClip;
		public var item1:MovieClip;
 
 
		////////fonction constructeur///////
		public function Main_Docs ():void
		{
 
			addEventListener (Event.ADDED_TO_STAGE,onStageAccess);
			trace ("__________Main_Docs Called ");
		}
 
		private function onStageRemove (_event:Event):void
		{
 
			removeEventListener (Event.REMOVED_FROM_STAGE,onStageRemove);
			//logo.removeEventListener (MouseEvent.MOUSE_DOWN,pressLogo);
 
		}
		private function onStageAccess (_event:Event):void
		{
 
			addEventListener (Event.REMOVED_FROM_STAGE,onStageRemove);
			removeEventListener (Event.ADDED_TO_STAGE,onStageAccess);
			//logo.addEventListener (MouseEvent.MOUSE_DOWN,pressLogo);
 
			myLoader.load (new URLRequest("datas/docs.xml"));
			myLoader.addEventListener (Event.COMPLETE, processXML);
			trace ("_____________onStageAcces Called");
 
			//fmenuOnglet.removeEventListener (MouseEvent.ROLL_OUT, SMenu1OUT);
 
 
 
		}
		public function processXML (e:Event):void
		{
 
			leXML = new XML(e.target.data);
			trace ("************************************** NBRE de TITRE ********" + leXML..titre.length());
			trace ("************************************** NBRE de TEXTE ********" + leXML..texte.length());
 
			var cont_content:MovieClip = new MovieClip();
			cont_display.addChild (cont_content);
 
			var cont_weedeo:MovieClip = new MovieClip();
			cont_trame.addChild (cont_weedeo);
 
 
			trace ("___________________________________________________________________________________________________________________CONT_DISPLAY NUM CHILDREN" + cont_display.numChildren);
			//var FMenuOnglet:FMenuOnglet = new FMenuOnglet();
 
			var titre1:BTN_NEWS = new BTN_NEWS(leXML..titre[0]);
			var titre2:BTN_NEWS = new BTN_NEWS(leXML..titre[34]);
			var References:BTN_NEWS = new BTN_NEWS(leXML..titre[31]);
			var titre4:S_Menu = new S_Menu(leXML..titre[3]);
			var titre5:S_Menu = new S_Menu(leXML..titre[10]);
			var titre7:S_Menu = new S_Menu(leXML..titre[35]);
 
			var texte1:Intros = new Intros(leXML..texte[0]);
 
			var credits1:Credits = new Credits(leXML..titre[58]);
			var mentions:Credits = new Credits(leXML..titre[61]);
 
 
			var screen:FLVPlayback = new FLVPlayback();
			screen.x = 0;
			screen.y = 0;
			screen.width = cont_trame.width;
			screen.height = cont_trame.height;
 
			screen.source = "videos/management.flv";
			cont_weedeo.addChild (screen);
			var latrame:LaTrame = new LaTrame();
			cont_weedeo.addChild (latrame);
			screen.addEventListener (Event.COMPLETE, playAgain);
			function playAgain (evt:Event):void
			{
				screen.seek (0);
				screen.play ();
			}
 
 
 
			credits1.buttonMode=true;
			titre1.buttonMode=true;
 
 
			titre1.x = 5;
			titre1.y = 2;
			titre2.x = 50;
			titre2.y = 2;
			titre4.x = 5;
			titre4.y = 22;
			titre5.x = 80;
			titre5.y = 22;
			References.x = 130;
			References.y = 2;
			titre7.x = 50;
			titre7.y = 22;
			credits1.x = 5;
			mentions.x = 80;
 
 
			cont_menu.addChild (titre1);
			cont_menu.addChild (titre2);
			cont_menu.addChild (References);
 
			cont_footer.addChild (credits1);
			cont_footer.addChild (mentions);
			trace ("_______________________>>>>>>>>>>>>>>>>>>>>_______________________XML LENGTH>>>>>>>>>>>>>>>>>>>" + leXML..texte.length());
			//trace("___________________________________________" + leXML..titre[5] + "_____________________________________________");
			//trace("___________________________________________" + leXML..soustitre[0] + "_____________________________________________");
			//trace("___________________________________________" + leXML..texte[2] + "_____________________________________________");
 
			cont_content.addChild (texte1);
 
 
			titre1.addEventListener (MouseEvent.MOUSE_DOWN, AgenceContent);
			titre1.addEventListener (MouseEvent.MOUSE_OVER, AgenceOVER);
			//titre1.addEventListener (MouseEvent.MOUSE_OUT, AgenceOUT);
			titre4.addEventListener (MouseEvent.MOUSE_DOWN, affichetitre1PresentationContent);
			titre5.addEventListener (MouseEvent.MOUSE_DOWN, affichetitre1ManagementContent);
			References.addEventListener (MouseEvent.MOUSE_DOWN, affichetitre1ReferencesContent);
 
			titre2.addEventListener (MouseEvent.MOUSE_DOWN, afficheDiagnosticContent);
			titre7.addEventListener (MouseEvent.MOUSE_DOWN, afficheOffreContent);
			mentions.addEventListener (MouseEvent.MOUSE_DOWN, afficheMentionsContent);
 
			function AgenceOVER (e:MouseEvent):void
			{
				cont_menu.addChild (titre4);
				cont_menu.addChild (titre5);
				removeEventListener(MouseEvent.MOUSE_OVER, AgenceOVER);
			}
			function AgenceOUT (e:MouseEvent):void
			{
				//while((mouseX>180) && (mouseX<125)&& (mouseY> 565) && (mouseY<525)){
				cont_menu.removeChild (titre4);
				cont_menu.removeChild (titre5);
					trace("AGENCE MOUSE OUT APPELLE");
			}
 
 
 
			//////////////////////////////////////////////////////////////////////////////////////////////////titre1 + ssMenus
			function AgenceContent (e:MouseEvent)
			{
				trace ("AGENCE    Content");
				cleanEcran ();
				cleanVideo ();
 
				screen.source = "videos/home.flv";
				cont_weedeo.addChild (screen);
				var latrame:LaTrame = new LaTrame();
				cont_weedeo.addChild (latrame);
				screen.addEventListener (Event.COMPLETE, playAgain);
				function playAgain (evt:Event):void
				{
					screen.seek (0);
					screen.play ();
				}
 
				var item1:Intros = new Intros(leXML..texte[0]);
				item1.x = 5;
				item1.y = 5;
				cont_content.addChild (item1);
				//cont_menu.addChild (titre4);
				//cont_menu.addChild (titre5);
				trace (item1);
 
			}
			var retardateur:Timer = new Timer(2500, 1);
			retardateur.addEventListener (TimerEvent.TIMER, temps);
 
			//////////////////////////////////////////////////////////////////////////////////////////////////titre1 > Presentation
			function affichetitre1PresentationContent (e:MouseEvent)
			{
				trace ("affichetitre1PRES Content");
				cleanEcran ();
				cleanVideo ();
 
				screen.source = "videos/presentation.flv";
				cont_weedeo.addChild (screen);
				var latrame:LaTrame = new LaTrame();
				cont_weedeo.addChild (latrame);
				screen.addEventListener (Event.COMPLETE, playAgain);
				function playAgain (evt:Event):void
				{
					screen.seek (0);
					screen.play ();
				}
				//var item2:Intros = new Intros(leXML..texte[1]);
				//item2.x = 5;
				//item2.y = 5;
				//cont_content.addChild(item2);
				//item2.addEventListener(Event.ENTER_FRAME, clipSuite);
				//trace(item2);
 
 
				var presContTitre:Titre1 = new Titre1(leXML..titre[5]);
				var presContsTitre: STitre1 = new STitre1(leXML..soustitre[0]);
				var trameRouge:TrameRouge = new TrameRouge();
				var presContent: TextcontentBlanc = new TextcontentBlanc(leXML..texte[2]);
 
				presContTitre.x = 5;
				presContTitre.y = 5;
				presContsTitre.x = 5;
				presContsTitre.y = 57;
				trameRouge.x = 10;
				trameRouge.y = 84;
				presContent.x = 27;
				presContent.y = 103;
 
				cont_content.addChild (presContTitre);
				//trace("___________________________________________" + presContTitre + "_____________________________________________presContTitre");
 
				cont_content.addChild (presContsTitre);
				cont_content.addChild (trameRouge);
				cont_content.addChild (presContent);
 
 
				retardateur.start ();
 
			}
			///////////////////////////////////////////////////////////////////////////////////////////////////SOUS MENU PRES
			function temps (event:TimerEvent):void
			{
				var SMenu1:SMenuPres = new SMenuPres(leXML..titre[6]);
				var SMenu2:SMenuPres = new SMenuPres(leXML..titre[7]);
				var SMenu3:SMenuPres = new SMenuPres(leXML..titre[8]);
				var SMenu4:SMenuPres = new SMenuPres(leXML..titre[9]);
 
				SMenu1.x = 27;
				SMenu1.y = 270;
				SMenu2.x = 187;
				SMenu2.y = 270;
				SMenu3.x = 347;
				SMenu3.y = 270;
				SMenu4.x = 507;
				SMenu4.y = 270;
 
				cont_content.addChild (SMenu1);
				cont_content.addChild (SMenu2);
				cont_content.addChild (SMenu3);
				cont_content.addChild (SMenu4);
 
 
 
				trace ("___________________________________________SOUS MENU PRES_____________________________________________presContTitre");
 
 
				SMenu1.addEventListener (MouseEvent.ROLL_OVER, SMenu1ON);
				fmenuOnglet.addEventListener (MouseEvent.ROLL_OUT, SMenu1OUT);
				SMenu2.addEventListener (MouseEvent.ROLL_OVER, SMenu2ON);
				fmenuOnglet2.addEventListener (MouseEvent.ROLL_OUT, SMenu2OUT);
				SMenu3.addEventListener (MouseEvent.MOUSE_OVER, SMenu3ON);
				fmenuOnglet3.addEventListener (MouseEvent.MOUSE_OUT, SMenu3OUT);
				SMenu4.addEventListener (MouseEvent.MOUSE_OVER, SMenu4ON);
				fmenuOnglet4.addEventListener (MouseEvent.MOUSE_OUT, SMenu4OUT);
 
				//fmenuOnglet.mouseChildren = false;
				fmenuOnglet.buttonMode = true;
				//fmenuOnglet2.mouseChildren = false;
				fmenuOnglet2.buttonMode = true;
				//fmenuOnglet3.mouseChildren = false;
				fmenuOnglet3.buttonMode = true;
				//fmenuOnglet4.mouseChildren = false;
				fmenuOnglet4.buttonMode = true;
 
 
			}
			var SMenu1Cont: TexteBlanc = new TexteBlanc(leXML..texte[3]);
			var SMenu1Titre: STitreRouge = new STitreRouge(leXML..titre[6]);
			var fmenuOnglet:FMenuOnglet1 = new FMenuOnglet1();
 
			var SMenu2Cont: TexteBlanc = new TexteBlanc(leXML..texte[4]);
			var SMenu2Titre: STitreRouge = new STitreRouge(leXML..titre[7]);
			var fmenuOnglet2:FMenuOnglet2 = new FMenuOnglet2();
 
			var SMenu3Cont: TexteBlanc = new TexteBlanc(leXML..texte[5]);
			var SMenu3Titre: STitreRouge = new STitreRouge(leXML..titre[8]);
			var fmenuOnglet3:FMenuOnglet3 = new FMenuOnglet3();
 
			var SMenu4Cont: TexteBlanc = new TexteBlanc(leXML..texte[6]);
			var SMenu4Titre: STitreRouge = new STitreRouge(leXML..titre[9]);
			var fmenuOnglet4:FMenuOnglet4 = new FMenuOnglet4();
 
 
			function SMenu1ON (e:MouseEvent):void
			{
				fmenuOnglet.x = 27;
				fmenuOnglet.y = 102;
				SMenu1Titre.x = 10;
				SMenu1Titre.y = 15;
				SMenu1Cont.x = 10;
				SMenu1Cont.y = 60;
 
				cont_content.addChild (fmenuOnglet);
				fmenuOnglet.addChild (SMenu1Titre);
				fmenuOnglet.addChild (SMenu1Cont);
				trace ("******************************************************::::" + cont_content.numChildren);
				trace ("******************************************************::::" + e.target.name);
 
			}
			function SMenu1OUT (e:MouseEvent):void
			{
				cont_content.removeChild (fmenuOnglet);
				fmenuOnglet.addChild (SMenu1Titre);
				fmenuOnglet.addChild (SMenu1Cont);
			}