pb affectation dynamique d'évenements

pb affectation dynamique d'évenements - Flash/ActionScript - Programmation

Marsh Posté le 13-08-2007 à 02:14:45    

hello
 
voila je veux définir à l'execution les onRollOver etc de certains éléments. Je fais donc ça :

Code :
  1. var cliprub:Array = Array(_root.menuprint, _root.menumulti, _root.menuperso, _root.menucontact);
  2. for (i=0; i<cliprub.length; i++) {
  3. clibrub[i].bouton.onRollOver = function() { _root.clibrub[i].gotoAndPlay("debut" ); }
  4. clibrub[i].bouton.onRollOut = function() { _root.clibrub[i].gotoAndPlay("fin" ); }
  5. clibrub[i].bouton.onPress = function() { _root.selectMenuItem(i); }
  6. trace(cliprub[i].bouton);
  7. }


le "trace(cliprub[i].bouton)" me donne exactement ce que je veux, le clip est bien ciblé.
 
Mais rien n'est pris en compte, les clips ne réaglissent pas a la souris :/
 
Ou est le pb ?


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 13-08-2007 à 02:14:45   

Reply

Marsh Posté le 21-08-2007 à 12:33:13    

Ton code est pas mal mais ça ne peut pas marcher.
Voici la solution :

 
Code :
  1. var cliprub:Array = Array(_root.menuprint, _root.menumulti, _root.menuperso, _root.menucontact);
  2. for (i=0; i<cliprub.length; i++) {
  3.     var mc = clibrub[i].bouton;
  4.     mc.id = i;
  5.     mc.onRollOver = function (){
  6. func1 (this.id);
  7.     }
  8.     mc.onRollOut = function (){
  9. func2 (this.id);
  10.     }
  11.     mc.onPress = function (){
  12. func3 (this.id);
  13.     }
  14. }
 

Ensuite tu détermines tes fonctions

Code :
  1. function func1(i) {
  2. _root.clibrub[i].gotoAndPlay("debut" );
  3. }


etc ...


Message édité par Zedlefou le 21-08-2007 à 12:34:19

---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Marsh Posté le 21-08-2007 à 12:52:39    

han oui, le [i] [:fing fang fung]
ya que ça en fait non ?
 
si oui, pourquoi ne pas faire juste ça :

Code :
  1. var cliprub:Array = Array(_root.menuprint, _root.menumulti, _root.menuperso, _root.menucontact);
  2. for (i=0; i<cliprub.length; i++) {
  3.         clibrub[i].bouton.id = i;
  4. clibrub[i].bouton.onRollOver = function() { _root.clibrub[this.id].gotoAndPlay("debut" ); }
  5. clibrub[i].bouton.onRollOut = function() { _root.clibrub[this.id].gotoAndPlay("fin" ); }
  6. clibrub[i].bouton.onPress = function() { _root.selectMenuItem(this.id); }
  7. trace(cliprub[i].bouton);
  8. }


?


Message édité par theredled le 21-08-2007 à 12:55:01

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 21-08-2007 à 12:55:21    

Tu donnes un id à tout tes boutons pour savoir sur lequel tu es quand tu clic.
Et ce Id tu l'envoies à une fonction qui produit une action adequat.


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Marsh Posté le 21-08-2007 à 12:56:39    

cf edit :D


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 21-08-2007 à 14:29:18    

Oui ca marche mais c'est beaucoup moins propre, c'est tout.
Dans les appli de plus grandes envergures si tu ne découpes pas tes actions en parties distinctes ça va vite craindre du boudin.


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Marsh Posté le 21-08-2007 à 17:22:37    

okay [:ojap]


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Sujets relatifs:

Leave a Replay

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