Appel Fonctions antérieures / portée , a partir d'autres clips ?

Appel Fonctions antérieures / portée , a partir d'autres clips ? - Flash/ActionScript - Programmation

Marsh Posté le 03-02-2005 à 01:10:41    

Bonjour, je travaille sur la partie code AS (1 surement) d'une anim flash, et j'ai un petit souci de portée de fonctions. (je suis trés débutant avec l'AS , d'ailleurs, que je trouve d'ailleurs un peu bordélique sur les bords, a moins que ce soir l'instigateur de ce fichier mais bref  :D ).
 
Dans le clip principal de mon anim, je définis une fonction pour afficher une image à tel endroit par exemple.
Dans ce meme clip, je l'appelle sans probleme.
 
Maintenant, je clique sur un bouton lancant une animation de sous menu. Sur un des boutons de ce sous menu, j'ai défini l'action press qui appelle ma fonction image. Cependant pas moyen de l'afficher (j'ai essayé, _root, _parent...). La fonction précédent ne semble pas s'appeller tout simplement.
 
Redéfinir dans cette action ci toutes mes fonctions me semble particuliérement sale et peu efficace icon_smile.gif
 
Je précise que j'ai fait des boutons sur le clip principal, et que le code onRelease, ou onPress, qui appelle la dite fonction d'affichage, fonctionnent parfaitement.
 
En clair, des que je rentre dans un autre clip, j'arrive pas à récupérer mes fonctions définies plus loin...Que faire ?
 
Merci  :hello:


---------------
Code Ami 3DS : 4725-8298-9418
Reply

Marsh Posté le 03-02-2005 à 01:10:41   

Reply

Marsh Posté le 03-02-2005 à 01:23:38    

comment lance-tu l'animation de sous menu ?
c'est dynamique ? loadMovie ? attachMovie ?
Poste ton AS ...

Reply

Marsh Posté le 03-02-2005 à 01:34:47    

Sur le bouton, qui est en fait un rollover j'ai un bête :
 
on (rollOver) {
 _root.sm.play(2);
}
 
Ceci affiche trois sous boutons. Sur le premier, on trouve :
 
on (press) {
 c1.play(2);
 c1._visible=true;
 c2._visible=false;
 c3._visible=false;
}
 
qui permet donc, dapres ce que je comprends, de lancer l'anim c1, et qui rend visible le sous menu c1, tandis que les 2 autres restent cachés (3 sous-sous menus en fait)
 
Si je met dans mon on (press) quoi que ce soit comme fonction présente sur le clip principal, ben c'est la qu'il se passe rien.
 
Le _root fait appel à mon clip principal, le _root étant un simple loader.
 


---------------
Code Ami 3DS : 4725-8298-9418
Reply

Marsh Posté le 03-02-2005 à 01:58:53    

:heink: ... heuuu ouais mais ça, c'est le truc qui marche ... j'aimerais voir le truc qui ne fonctionne pas ...
Bon dans tous les cas, utilises la fonction trace() pour voir où tu es et ce qu'il se passe ...
( genre déjà vérifier que le onPress s'effectue bien ! )

Reply

Marsh Posté le 03-02-2005 à 02:04:37    

Alors oui, le onpress s'effectue bien :
 
on (press) {
 c1.play(2);
 c1._visible=true;
 c2._visible=false;
 c3._visible=false;  
trace ("blabla" );
afficheImageDeRep("photos/" );
}
 
J'ai bien blabla. Par contre un trace dans afficheImageDeRep me prouve bien que cette derniere fonction n'est pas appelée.
 
Or, dans d'autres circonstances (boutons et définitions du onPress sur le clip principal), elle fonctionne très bien.
En fait c'est bien ce :
afficheImageDeRep("photos/" ); qui ne veut pas s'appeller...  :(


---------------
Code Ami 3DS : 4725-8298-9418
Reply

Marsh Posté le 03-02-2005 à 02:12:02    

Pour faire encore plus simple.  
Dans mon clip , j'ai defini une fonction afficher().
J'ai également un bouton.
 
Si j'appelle dans ce meme clip le code suivant :
 
bouton.onRelease=function () {
afficheImageDeRep("photo/" );
}
ca marche lorsque je clique sur le bouton.
 
 
Si maintenant j'associe une action a ce bouton et que dans la description, je met  
(dans le cadre actions sur bouton, donc)
 
on (press){
afficheImageDeRep("photo/" );
}
 
 
ca ne marche pas, ca doit etre un concept simple, mais c'est quoi ?


---------------
Code Ami 3DS : 4725-8298-9418
Reply

Marsh Posté le 03-02-2005 à 02:21:43    

je viens de tester exactement ce que tu décris et ça fonctionne nickel aussi bien en mode évènement qu'en mode fonction ... tu dois déconner autrepart mais je ne vois pas où ... [:airforceone]
Je sais pas moi, vérifie les noms de tes objets, mets des traces, vérifie les maj./min. dans les noms des objets et des fonctions, mets des traces, mets des traces, mets des traces ...


Message édité par Mr Mala le 03-02-2005 à 02:21:59
Reply

Marsh Posté le 03-02-2005 à 02:25:33    

exact exact, merci & autant pour moi pour la derniere, dans le meme clip, en évt ou en appel de fonction ca marche en effet  :jap:  
Par contre, pour l'autre clip, il ne voit résolument pas ma fonction  :cry:
 
ne serais je pas dans un autre clip ou il faut redéfinir les fonctions ? Que faire ? En effet, si dans mon onpress, je retape tout le code, ca marche, mais primo ca n'efface pas mon ancienne image, puisque c indépendant, et secundo c'est sale :)


Message édité par Modano le 03-02-2005 à 02:28:09

---------------
Code Ami 3DS : 4725-8298-9418
Reply

Marsh Posté le 03-02-2005 à 02:33:59    

ben si ta fonction est dans la _root, tous les clips de ton anims peuvent y accéder par _root.fonction() ...
Maintenant, si tu veux qu'un clip accède à une fonction d'un autre clip autre que _root , il faut utiliser son chemin complet ( genre _root.clip1.fonctionMachin() ) .. et ça ne change absolument rien d'être en mode fonction ou en mode évènement .. sauf si tu as oublié de nommer tes clips !


Message édité par Mr Mala le 03-02-2005 à 02:35:00
Reply

Marsh Posté le 03-02-2005 à 02:39:15    

Ah beh oui, tout betement, _root.nomduclip... maintenant me reste a trouver comment on trouve les noms de clips, mais ca me semble etre ca  :jap:  
Beh merci :)
 
PS: dailleurs, les noms de clips on les trouve ou ?  :sarcastic:


---------------
Code Ami 3DS : 4725-8298-9418
Reply

Marsh Posté le 03-02-2005 à 02:39:15   

Reply

Marsh Posté le 03-02-2005 à 02:47:32    

aïe .. là, c'est mal ! ce sont carément les bases de l'utilisation de l'interface de Flash ! :/

Reply

Marsh Posté le 03-02-2005 à 02:51:56    

Je ne nies pas que c'est mal :) , je m'occupe juste du code as d'une anim qu'on m'a prêté, donc je découvre en meme temps, j'ai utilisé flash ya si longtemps :) Je connais a peine l'AS d'ailleurs, moi je suis un modeste codeur C++ et consort :/
 
Bon j'ai maté la bibliothéque, mais pas moyen de trouver le bon clip, qui avec mon _root. ferait reconnaitre cette fichue fonction... :cry:


---------------
Code Ami 3DS : 4725-8298-9418
Reply

Marsh Posté le 03-02-2005 à 03:04:48    

Ya pas un truc genre déclaration publique, pour que les autres clips puissent y accéder ou pas ? :/


---------------
Code Ami 3DS : 4725-8298-9418
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed