Menu trop gourmand en ressources (tween & détection souris)

Description

Salut à tous...
Je me suis amusé à faire un menu avec déplacement des boutons et autres effets d'alpha en fonction de la position de la souris. Le résultat est très sympa , seulement il est bcp trop gourmand en ressources (le processeur est à 100%) . J'ai utilisé la class Tween pour gérer ces effets, mais comme je découvre tout juste les classes, il se peut qu'il y ait un gros bug :)
le but de la manoeuvre : le menu se met en place quand on est sur la partie gauche du swf, il se repositionne si on s'en écarte. Pour celà, j'ai utilisé la détection de l'angle de la souris par rapport à un clip controlleur.

Voici la source et merci pour votre aide !!

Source / Exemple :


// importation de la class :
import mx.transitions.Tween;
import mx.transitions.easing.*;

////////////////////////////////////////////
// déplacement des bt en fct de la souris :

angleSouris.onEnterFrame = function (){
	if(angleSouris.angle>=90 & angleSouris.angle<=180){
new mx.transitions.Tween(bt1, "_y", mx.transitions.easing.Regular.easeOut, bt1._y, 100, 1, true);
new mx.transitions.Tween(bt2, "_y", mx.transitions.easing.Regular.easeOut, bt2._y, 130, 1.2, true);
new mx.transitions.Tween(bt3, "_y", mx.transitions.easing.Regular.easeOut, bt3._y, 160, 1.4, true);
new mx.transitions.Tween(bt4, "_y", mx.transitions.easing.Regular.easeOut, bt4._y, 190, 1.6, true);
new mx.transitions.Tween(bt1, "_alpha", mx.transitions.easing.Regular.easeOut,bt1._alpha, 80, 1, true);
new mx.transitions.Tween(bt2, "_alpha", mx.transitions.easing.Regular.easeOut, bt2._alpha, 80, 1.2, true);
new mx.transitions.Tween(bt3, "_alpha", mx.transitions.easing.Regular.easeOut, bt3._alpha, 80, 1.4, true);
new mx.transitions.Tween(bt4, "_alpha", mx.transitions.easing.Regular.easeOut, bt4._alpha, 80, 1.6, true);
	}else {
new mx.transitions.Tween(bt1, "_y", mx.transitions.easing.Regular.easeOut, bt1._y, 50, 1, true);
new mx.transitions.Tween(bt2, "_y", mx.transitions.easing.Regular.easeOut, bt2._y, 60, 1.5, true);
new mx.transitions.Tween(bt3, "_y", mx.transitions.easing.Regular.easeOut, bt3._y, 70, 2, true);
new mx.transitions.Tween(bt4, "_y", mx.transitions.easing.Regular.easeOut, bt4._y, 80, 2.5, true);
new mx.transitions.Tween(bt1, "_alpha", mx.transitions.easing.Regular.easeOut, bt1._alpha, 30, 1, true);
new mx.transitions.Tween(bt2, "_alpha", mx.transitions.easing.Regular.easeOut, bt2._alpha, 30, 1.2, true);
new mx.transitions.Tween(bt3, "_alpha", mx.transitions.easing.Regular.easeOut, bt3._alpha, 30, 1.4, true);
new mx.transitions.Tween(bt4, "_alpha", mx.transitions.easing.Regular.easeOut, bt4._alpha, 30, 1.6, true);
	}	
}
/////////////////////////////////////////////////////////////////
// 4 boutons: bt1, bt2.....
var curBouton;
for (var i=1; i<=4; i++){
   curBouton = this["bt"+i];
   curBouton.num = i;

curBouton.onRelease = function(){
      trace(i); // affiche 5 pour tous les boutons
      trace(this.num); // affiche la valeur de i au moment où le onRelease a été créé
	  monBt="bt"+this.num;
	  trace("monBt : "+ monBt);
   }
curBouton.onRollOver = function(){
new mx.transitions.Tween(this, "_xscale", mx.transitions.easing.Regular.easeOut, this._xscale, 150, 0.5, true);
new mx.transitions.Tween(this, "_yscale", mx.transitions.easing.Regular.easeOut, this._yscale, 150, 0.5, true);
   }
curBouton.onRollOut = function(){
new mx.transitions.Tween(this, "_xscale", mx.transitions.easing.Regular.easeOut, this._xscale, 100, 0.5, true);
new mx.transitions.Tween(this, "_yscale", mx.transitions.easing.Regular.easeOut, this._yscale, 100, 0.5, true);
   }
}

Conclusion :


Je compte sur vous pour m'aider, je mettrai à jour la nouvelle source dès que j'aurai la solution...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.