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 lexé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
Partager