Hello !
Bon je pense que c'est super simple et que encore une fois je suis super nulle... mais bon, je débute, je ne suis qu'une humble graphiste à la base...

J'ai dans ma MainClass utilisé une méthode publique : myGotoAndStop

De mon clip principal j'ai loadé un clip swf fille, ce clip fille a une classe : ClasseMonChoix

Dans la ClasseMonChoix, je voudrais réutiliser la méthode myGotoAndStop mais là, j'ai une erreur comme quoi ma méthode ne semble pas avoir été définie...
Moi, je pensais que les classes discutaient entre elles, qu'on avait pas besoin de les présenter ;-)

Je suppose que je pourrais réécrire ma méthode dans cette classe ClasseMonChoix, mais je voudrais éviter de réécrire 20 fois le même code alors qu'il doit être possible de le partager..

Sérieusement, je ne sais pas comment faire....
Merci de votre aide


Code (simplifié) de MainClass :

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
package Classes{
 
	import flash.display.*;
	import flash.events.*;
	import flash.system.*;
	import flash.net.*;
	import flash.ui.*;
 
	public class MainClass extends MovieClip {
 
		// variable permettant l’exécution de la fonction de rappel 
		private var rappel:Function;
 
		// variable permettant de télécharger les swf filles
		private var chargeur:Loader;
 
		// variable permettant de donner le nom du swf fille à charger
		private var filleClip:URLRequest
 
		public function MainClass() {
 
			trace( "initialisation MainClass" );
			trace( "-----------" );
 
				// on écoute les boutons du menu principal
				btnAccueil.addEventListener( MouseEvent.MOUSE_DOWN, versAccueil );
 
			}		
 
			function versAccueil( event ):void {
 
				// déplace la tête de lecture à l'étiquette, lorsque tous les objets sont disponibles 
				// la fonction actifAccessible est déclenchée 
				myGotoAndStop( "accueil", actifAccessibleAccueil );
			}
 
			function actifAccessibleAccueil():void {
 
				// on écoute le bouton qui permet de loader la fille
				btnAccueil.addEventListener( MouseEvent.MOUSE_DOWN, monChoix );
 
			}
 
 
		}//fin public function MainClass()
 
 
		public function monChoix( event:MouseEvent ):void {
 
		filleClip = new URLRequest("monChoix.swf");
 
 		chargementFille();
 
		}
 
 
		// fonction de déplacement de la tête de lecture personnalisée
		public function myGotoAndStop( pImage:String, pFonction:Function ):void {
 
			// déplacement de la tête de lecture 
			gotoAndStop( pImage );
 
			// retourne un objet permettant 
			rappel=pFonction;
 
			// écoute de l'événement Event.RENDER 
			addEventListener( Event.RENDER, miseAJour );
 
			// force la diffusion de l'événement Event.RENDER 
			stage.invalidate();
		}
 
		private function miseAJour( pEvt:Event ):void {
			// nous tentons d'appeler la fonction de rappel 
			// si cela échoue, nous affichons un message d'erreur  
			// dans tout les cas, nous supprimons l'écoute de l'événement Event.RENDER
			try {
				rappel();
			} catch (pErreur:Error) {
				trace( "Erreur : La méthode de rappel n'a pas été définie" );
			} finally {
				removeEventListener( Event.RENDER, miseAJour );
			}
		}
 
 
		//permet de loader la fille
		public function chargementFille():void {
 
			//on crer un nouveau contenant
			chargeur = new Loader();
 
 			//on charge le clip à l'interieur
			chargeur.load ( filleClip ); 
 
			//le chargeur est ajouter à la liste d'affichage
			addChild ( chargeur );
 
			//on ecoute quand le contenu est fini de charger
			chargeur.contentLoaderInfo.addEventListener ( Event.COMPLETE, termine );
 
		}
 
		//quand le clip est fini de charger à l'interieur du contenant
		private function termine ( pEvt:Event ):void { 
 
			// référence le scénario de l'animation chargée 
 			var scenario:DisplayObject = pEvt.target.content; 
 
			 // affiche : [object MainTimeline] 
			 trace( scenario ); 
		}
 
	}// fin de public class MainClass
 
}// fin du package

Code (simplifié) de ClasseMonChoix :

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
package Classes{
 
	import flash.display.*;
	import flash.events.*;
	import flash.system.*;
	import flash.net.*;
	import flash.ui.*;
 
	public class ClasseMonChoix extends MovieClip {
 
		public function ClasseMonChoix() {
 
			//ecouteur pour le bouton continuer
			btnContinuer.addEventListener( MouseEvent.MOUSE_DOWN, continuer );
 
			//fonction du bouton continuer
			function continuer(event:MouseEvent):void {
 
				trace ("continuer");
 
				//déplace la tête de lecture à l'étiquette, lorsque tous les objets sont disponibles, 
				//la fonction actifAccessible est déclenchée 
				myGotoAndStop( "etiquette2", actifAccessibleEtiquette2);
 
			}
 
			function actifAccessibleEtiquette2():void {
 
				trace("ça marche : etiquette 2");
				trace( "-----------" );
			}
 
 
		}//fin public function ClasseMonChoix()
 
	}// fin de public class ClasseMonChoix
 
}// fin du package