[Flash] rollover sur menu dynamique

rollover sur menu dynamique [Flash] - Flash/ActionScript - Programmation

Marsh Posté le 14-10-2004 à 18:55:26    

Bonjour a tous !!
 
J'ai le script suivant.
Je veux faire en sorte qu'au survol de mon menu dynamique, j'ai une simple fonction de roll-over qui me change la couleur des libelles de menus, mais ca ne marche pas.
 
mon clip "clip" est une simple animation qui fait déplacer mon menu e haut en bas.
 
 
fscommand("fullscreen", "true" );
stop();
mPunkte = new Array();
mPunkte.push({titel:"test 1", inhalt:"<font size=\"12\"><b>ok 1</b>."});
mPunkte.push({titel:"test 2", inhalt:"<font size=\"12\"><b>ok 2</b>."});
 
for (var i = 0; i<mPunkte.length; i++) {
 attachMovie("clip", "mc"+i, i);
 this["mc"+i]._x = 320;
 this["mc"+i]._y = this["mc"+i]._height*i+90;
 this["mc"+i].txt_mc.txt = ": : .  "+mPunkte[i].titel+" ";
 this["mc"+i].details = mPunkte[i].inhalt;
 this["mc"+i].onRelease = function() {
  this.play();
  _root.ausgabe = this.details;
  this[animintro.gotoAndStop(340)];
 };
this["mc"+i].onRollOver = function() {
 
maCouleur.setRGB(0xff0000);
maCouleur = new Color(this["mc"+i]);
 
 };

}
pos_top = mc0._y;
pos = new Array();
for (var i = 0; i<mPunkte.length; i++) {
 pos[i] = this["mc"+i]._y;
}
Array.prototype.sort = function(str) {
 for (var j = 0; j<this.length; j++) {
  if (this[j]<str) {
   this[j] = this[j]+mc0._height;
  }
 }
};
onEnterFrame = function () { for (var i = 0; i<pos.length; i++) {if (this["mc"+i]._currentframe == 16) {pos.sort(pos[i]);pos[i] = pos_top;wahl_mc = i;this["mc"+i]._y = pos_top;}if ((wahl_mc != i) && (this["mc"+i]._y<pos[i])) {this["mc"+i]._y = this["mc"+i]._y+1;this["mc"+i].gotoAndStop(1);}}};

 
Merci de vos lumières.
 
Marc

Reply

Marsh Posté le 14-10-2004 à 18:55:26   

Reply

Marsh Posté le 18-10-2004 à 19:04:48    

il suffit pas de faire juste :


new Color(this).setRGB(0x123123);


?

Reply

Marsh Posté le 18-10-2004 à 19:47:47    

ca ne marche pas....
 
je continue à chercher.

Reply

Marsh Posté le 19-10-2004 à 00:17:02    

bon, ok j'ai un peu de temps là. déjà utilise des références plutôt que des accès en propriétés :


fscommand("fullscreen", "true" );
stop();
mPunkte = new Array();
mPunkte.push({titel:"test 1", inhalt:"<font size=\"12\"><b>ok 1</b>."});
mPunkte.push({titel:"test 2", inhalt:"<font size=\"12\"><b>ok 2</b>."});
 
for (var i = 0; i<mPunkte.length; i++) {
 var mc=attachMovie("clip", "mc"+i, i);
 mc._x = 320;
 mc._y = this["mc"+i]._height*i+90;
 mc.txt_mc.txt = ": : .  "+mPunkte[i].titel+" ";
 mc.details = mPunkte[i].inhalt;
 
mc.onRelease = function() {
  this.play(); // t'es sur de ton this ?  
  _root.ausgabe = this.details; // usage de _root à proscrire
  this[animintro.gotoAndStop(340)]; // this.animintro ça va pas ?
 };
 
 mc.onRollOver = function() {
   new Color(this).setRGB(0xff0000); // ça ça marche c'est sur mais attention
   // à chaque appel du onRollOver, une nouvelle couleur est créée
 };
}
pos_top = mc0._y;
pos = new Array();
for (var i = 0; i<mPunkte.length; i++) {
 pos[i] = this["mc"+i]._y;
}
Array.prototype.sort = function(str) {
 for (var j = 0; j<this.length; j++) {
  if (this[j]<str) {
   this[j] = this[j]+mc0._height;
  }
 }
};
onEnterFrame = function () { for (var i = 0; i<pos.length; i++) {if (this["mc"+i]._currentframe == 16) {pos.sort(pos[i]);pos[i] = pos_top;wahl_mc = i;this["mc"+i]._y = pos_top;}if ((wahl_mc != i) && (this["mc"+i]._y<pos[i])) {this["mc"+i]._y = this["mc"+i]._y+1;this["mc"+i].gotoAndStop(1);}}};


 
t'as essayé de tracer des trucs ?
new Color(clip).setRGB(integer); ça change effectivement la couleur. si problème il y a, il vient d'ailleurs


Message édité par raytaller le 19-10-2004 à 00:18:47
Reply

Marsh Posté le 22-10-2004 à 17:32:07    

Excellent, bonne solution ; je remet en forme mais c'est pas mal du tour : mon bouton change d'aspect comme prévu.
Il faut que je bosse sur le retour "à la normale" car un simple onrollout ne me permet pas de spécifier autre chose qu'une nouvelle gamme de couleurs, ce qui rends mon menu difficilement lisible...
 
merci encore

Reply

Sujets relatifs:

Leave a Replay

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