begin process at 2012 05 26 06:21:13
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

ActionScripts

 > MENU TROP GOURMAND EN RESSOURCES (TWEEN & DÉTECTION SOURIS)

MENU TROP GOURMAND EN RESSOURCES (TWEEN & DÉTECTION SOURIS)


 Information sur la source

Note :
7,67 / 10 - par 3 personnes
7,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :ActionScripts Classé sous :tween, couleur, menu, boucle Niveau :Initié Date de création :14/11/2005 Date de mise à jour :22/11/2005 01:15:15 Vu / téléchargé :7 363 / 1 813

Auteur : slimflash

Ecrire un message privé
Commentaire sur cette source (32)
Ajouter un commentaire et/ou une note

 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

  • // 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);
  • }
  • }
// 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...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

22 novembre 2005 01:15:15 :
Voici la nouvelle version (menuTween3.fla + menuTween3), le menu ne bug plus (pas de saccades, ça ne bouffe plus de ressources processseur...) et j'y ai optimisé le changement de couleur des boutons dans la boucle. Pourquoi utiliser des tween ? d'abord parce que je me suis aperçu que les mouvements sont beaucoup plus fluides, que les mouvements peuvent changer à n'importe quel moment (c'est pas le cas avec une interpolation classique), et puis c'est tout de même assez simple à manipuler... Si j'ai étudié la question, c'est qu'il est plus simple de revoir qq lignes de code qd un client veux changer qq chose que de devoir repositionner tous ses clips si on ne code pas! Surtout quand comme moi on utilise beaucoup de clips imbriqués. Je viens de finir un test avec des flous sous flash8 qui va vous prouver de l'efficacité des tween. Cliquez sur les boutons du menu (sauf portfolio ;) et regardez le papillon, sa taille et son ombre bouger... C'est la même source avec du code en + pour animer le papillon. Vous allez voir les mouvements sont très fluides : test.richardeau.net/menu/ Au fait, merci à zoukozouko d'avoir noté !!! c'est ma première source postée, maintenant qu'elle est optimisée, allez-y... votez ;) -= SlimFlash =-

 Sources de la même categorie

Source avec Zip Source avec une capture OUVRIR UNE ANIMATION EXTERNE DANS UN CLIP VIDE. par KcHeY
Source avec Zip ZOOM SUR UNE IMAGE par yasdar
Source avec Zip Source avec une capture UN PEU DE MATH par yasdar
Source avec Zip Source avec une capture PARTICULE SYSTEM par yasdar
Source avec Zip Source avec une capture GALLERIE PHOTO AVEC XML par yasdar

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture CARROUSEL MENU FLASH AS3 2012 par captainpat
Source avec Zip UN MENU QUI BOUGE GRACE AU TWEEN par nomadman
Source avec Zip MENU EN 3D par jiminy2
Source avec Zip NUC_DYNMENU :: MENU DYNAMIQUE AVEC FUSION ET DÉGRADÉ DE COUL... par x Code spiriT x
Source avec Zip TWEENING BOUTONS par claviskass

Commentaires et avis

Commentaire de Mafassure le 14/11/2005 12:00:24 administrateur CS

Salut

Si tu importe les packages pas besoin de réécrire les chemins de class dans chaque instance

Crée un proto pour les tweens

les tweens  "onEnterFrame".... pas bien :O(

a+

Commentaire de BananaTree le 14/11/2005 12:28:34

j'ai pas toup compris à ce que tu voulais faire, alors j'ai pas optimisé, je te mets juste le code pour décharger le processeur :

//-----------------------------------
// importation de la class du loader, des effets de mvt de retardement
Loader = new Tools.myLoader (indicateurParDefaut );
import mx.transitions.Tween;
import mx.transitions.easing. *;
import Tools.Delay
//////////////////////////////
////////////////////////////////////////////
// déplacement des bt en fct de la souris
var tweenBtn_1 : Tween = new Tween (bt1, "_y", mx.transitions.easing.Regular.easeOut, bt1._y, 100, 1, true);
var tweenBtn_2 : Tween = new Tween (bt2, "_y", mx.transitions.easing.Regular.easeOut, bt2._y, 130, 1.2, true);
var tweenBtn_3 : Tween = new Tween (bt3, "_y", mx.transitions.easing.Regular.easeOut, bt3._y, 160, 1.4, true);
var tweenBtn_4 : Tween = new Tween (bt4, "_y", mx.transitions.easing.Regular.easeOut, bt4._y, 190, 1.6, true);
this.onMouseMove = function ()
{
if (angleSouris.angle >= 90 & angleSouris.angle <= 180)
{
tweenBtn_1.continueTo (100, 1);
tweenBtn_2.continueTo (130, 1.2);
tweenBtn_3.continueTo (160, 1.4);
tweenBtn_4.continueTo (190, 1.6);
} else
{
tweenBtn_1.continueTo (50, 1);
tweenBtn_2.continueTo (60, 1.5);
tweenBtn_3.continueTo (70, 2);
tweenBtn_4.continueTo (80, 2.5);
}
}
/////////////////////////////////////////////////////////////////
// 4 boutons: bt1, bt2.....
var curBouton;
for (var i = 1; i <= 4; i ++)
{
curBouton = this ["bt" + i];
curBouton.num = i;
this ["bt" + i].xScaleTween = new Tween (curBouton, "_xscale", mx.transitions.easing.Regular.easeOut, curBouton._xscale, 100, 0.5, true);
this ["bt" + i].yScaleTween = new Tween (curBouton, "_yscale", mx.transitions.easing.Regular.easeOut, curBouton._yscale, 100, 0.5, true);
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 ()
{
this.xScaleTween.continueTo (150, 0.5);
this.yScaleTween.continueTo (150, 0.5);
}
curBouton.onRollOut = function ()
{
this.xScaleTween.continueTo (100, 0.5);
this.yScaleTween.continueTo (100, 0.5);
}
}
////////////////////////////

le pb avec Tween, c qu'il n'y à personne chez macromedia qui à eu la bonne idée de la documenter ! ! ! ! ! ! !

Commentaire de slimflash le 14/11/2005 12:53:14

En effet, je me doutais que le pblm venais de onEnterFrame, ca doit calculer à chaque frame, d'où l'intense utilisation des ressources...
Ce que je cherche à faire (-> merci bananaTree) c'est ranger le menu qd on est hors de la zone de navigation (délimitée ici par l'angle de la souris).
Je vais changer les positions car d'un point de vue ergonomie, c'est pas le top...  Par contre, je comprends mieux comment procédé (je crois du moins :)) à chaque fois qu'une interpolation n'est pas finie, il faut utiliser "continuteTo()" , c'est ça ??
Sinon, je viens de tester avec ce nouveau code (merci encore BananaTree) mais ça saccade...
comment optimiser encore + ??
Merci
PS : C'est vrai que c'est vraiment galère que l'aide de flash soit + que sommaire !!! Sans parler des codes fournis qui sont parfois buggés!!!

Commentaire de bali_balo le 14/11/2005 16:43:56

Tu aurais put faire ceci en AS et avec quelques interpolation, et le tour est joué!
( je dis ceci juste en voyant comment ton menu fonctionne...)
Je me demande pourquoi il y a des personnes qui se "cassent" la tête à faire du code alors que flash nous permet de détourner ce genre de casse tête...

Flash..................made for "les programmeurs paresseux"
=]

bali_balo....

Commentaire de Loubiou le 15/11/2005 03:25:36

Hello !!
Bon moi je trouve que ta source consomme seulement 45% !
Par contre pourquoi ne fait-tu pas une classe de cette façon :(javascrip.as)

_________________________________________________________________
class javascript
{
/*
* Ouvre un message d'alerte "Explorer" ;
* */
static function alert ( text :String )
:Void {
getURL("javascript:alert('" + text + "')");
}
}
_________________________________________________________________

Comme ça tu fait appel à la fonction ; comme suit :
javascript.alert("message d'alerte");

et plus besoin d'indiquer à flash de charger ta class !

Déjà ça va le faire, fait un essai en recodant toutes tes procédures dans ce format.
Puis plus besoin de faire un enterframe, tu passe juste une image sur la scène et zoo le tour est joué !
Bravo pour ta source qui est bien originale !!!!

Commentaire de fredox33 le 16/11/2005 11:36:56

moi j'aime beaaucoup ce menu
il me prend 50% du proc pour 11660 ko de mémoire, je te souhaite une bonne optimisation

Frédéric

Commentaire de bali_balo le 16/11/2005 11:44:17

Je te le refait super optimiser ta source...
Sa prend 2 minutes, j'lai déjà essayer...Freanchement, tu aurais pu passer par qq lignes de code, et u npeu d'interpolation...

bali_balo....

Commentaire de slimflash le 16/11/2005 11:59:54

Merci pour tous vos commentaires... je n'ai pas pu m'y repencher, je suis sur une deadline ! Si je fais appel à votre aide, c'est que je ne suis pas programmeur à la base, mais plutôt designer... et donc mes compétences en la matières sont parfois limitées. J'essaie d'apprendre de jour en jour, mais quand il manque quelques bases, et que le boulot tombe en même temps, c'est pas facile de se plonger dans cet univers qui évolue sans cesse.
Aussi, je compte bien améliorer ce menu, et si je n'utilise pas d'interpolations (non codées en AS) c'est parce que j'aimerai y ajouter des sous-rubriques (sous-menus) et animer un clip en fonction des clics (un papillon qui vole pour tout vous dire). Dans ce cas, c'est bcp plus pratique d'utiliser des tween : les mouvements du papillon sont bcp + fluides et il peut changer de direction à n'importe quel endroit... idem pour les boutons du menu
J'avance un peu dans mon taf, et promis, je m'y remet, avec l'exemple du papilon en prime :)
Merci encore
-= SlimFlash =-

Commentaire de Mafassure le 16/11/2005 12:18:23 administrateur CS

--> si je n'utilise pas d'interpolations (non codées en AS) <--

t'as bien raison l'inverse aurai aucun interet...

--> J'essaie d'apprendre de jour en jour...<--
bon courage ;O)

Commentaire de on_drag_on le 16/11/2005 13:53:43

bien d'accord, une source comme celle-ci faite avec des "interpolations (non codées en AS)" n'aurait pas grand intérêt, alors que là il y'a de quoi apprendre des trucs ... je repasserais voir ta mise à jour quand tu auras eu le temps de la faire.
et merci.
a+
(//)

Commentaire de bali_balo le 16/11/2005 18:16:17

euuhh sinon, c'est fait sous flash 8 non
Parce que la classe Tween avec mx2004....???? inconnue au bataillon... =]

bali_balo....

Commentaire de Mafassure le 16/11/2005 19:09:57 administrateur CS

les class c'est depuis mx 2004.... tween bidules et autres.

sinon, y'a celle de top 30 -> peux aussi faire des interpolation de couleur :O) en plus y'a la doc dans le zip....

Commentaire de Mafassure le 16/11/2005 19:13:50 administrateur CS

http://www.flashkod.com/codes/SUITE-DE-CLASSE-TRANSFORMATION-ET-TRANSITION-2-NOUVEAUX-FLA-/30934.aspx

Commentaire de bali_balo le 16/11/2005 19:21:56

Si sa vous amuse de réécrire les fonctions intégrées à flash...
###C'est vous qui voyez###
###Yen a qui ont essayer###
###i zon eut des problèmes###


bali_balo....  =]

Commentaire de Mafassure le 16/11/2005 19:29:27 administrateur CS

BaliBalo, je comprend pas tes réactions !

sincerement Macromédia propose ces propre package pourquoi ne pas les utilisers ?!!
ensuite Top 30 propose gracieusement ca version des Tweens qui offre notament la possibilité d'interpoler les couleurs... que n'offre pas la tween native du package mx...

libre à toi de créer tes anim comme bon te semble mais vien pas crier des bêtises plus grosses que toi

Commentaire de bali_balo le 16/11/2005 19:34:49

C'est pas cela que je dis.

C'est juste que...Moi qui est télement habitué à réaliser des projets en flash ( c'est ------ de client qui te mettent la pression... ) en 3/4 de tours que...
C'est difficile pour moi d'y en voir l'intéret...   =]
Voilà voilà, mais en tant que programmeur...oui, biensur que je voit l'intéret...Mais me fatiguer à la prog. juste pour obtenir ce résultat...sa peut fait plaisir au programmeur...

###C'est vous qui voyez###
###Yen a qui ont essayer###
###i zon eut des problèmes###
"Chevalier & Laspales" pour ceux qui ne connaissent pas...

bali_balo....

Commentaire de slimflash le 17/11/2005 16:36:51

bon, voici la nouvelle source..... qui ne bouffe plus de ressources (ou sauf pdt les tween seulement). Plus besoin de détecteur d'angle de souris, je déclenche les déplacements du menu avec les coordonnées _x de la souris en utilisant this.onEnterFrame et en appelant une fonction "menuOpenClose()" plutôt que de de mettre les 11 lignes dans le onEnterFrame = function(). Je sais pas si c'est ça, mais le menu n'est plus gourmand comme avant, et les déplacements sont hyper fluides :)
C'est hyper léger, y'a que 4 boutons à créer (bt1, bt2, bt3, bt4) et on peut utiliser du xml avec la boucle qui gère les actions des 4 boutons... à voir pour + tard, utilise si on doit développer un site en pls langues par exemples.
Y'a encore des choses à optimiser : le changement des couleurs des boutons lors du clic. J'ai pas eu le temps de m'y pencher, la solution est sans doute dans la boucle des 4 boutons... mais je met en ligne car le taf m'apelle encore.

Merci encore à BananaTree et aux autres pour votre aide...
N'hésitez pas à améliorer :)
A+
-= SlimFlash =-

//-----------------------------------
// importation de la class du loader, des effets de mvt de retardement
Loader = new Tools.myLoader (indicateurParDefaut );
import mx.transitions.Tween;
import mx.transitions.easing. *;
import Tools.Delay
//////////////////////////////
////////////////////////////////////////////
// déplacement des bt en fct de la souris
var tweenBtn_1 : Tween = new Tween (bt1, "_y", mx.transitions.easing.Regular.easeOut, bt1._y, 100, 1, true);
var tweenBtn_2 : Tween = new Tween (bt2, "_y", mx.transitions.easing.Regular.easeOut, bt2._y, 130, 1, true);
var tweenBtn_3 : Tween = new Tween (bt3, "_y", mx.transitions.easing.Regular.easeOut, bt3._y, 160, 1, true);
var tweenBtn_4 : Tween = new Tween (bt4, "_y", mx.transitions.easing.Regular.easeOut, bt4._y, 190, 1, true);

// avant :
//this.onMouseMove = function (){
// pas convaincant avec onMouseMove : ça saccade !! j'utilise donc onEnterFrame

// maintenant :
this.onEnterFrame = function(){
menuOpenClose();
}
function menuOpenClose(){
if(_root._xmouse<= 200){
tweenBtn_1.continueTo (100, 1);
tweenBtn_2.continueTo (130, 1);
tweenBtn_3.continueTo (160, 1);
tweenBtn_4.continueTo (190, 1);
} else {
tweenBtn_1.continueTo (50, 1);
tweenBtn_2.continueTo (60, 1);
tweenBtn_3.continueTo (70, 1);
tweenBtn_4.continueTo (80, 1);
}
}


/////////////////////////////////////////////////////////////////
//fct pour les couleurs des boutons lors du clic :
// je send que y'en a qui vont crier : on peut optimiser... G pas eu encore le temps de me //pencher sur la question ;)

var btn1 =bt1.txt;
couleurBt1 = new Color(btn1);
couleurBt1.setRGB(0x999999);
var btn2 =bt2.txt;
couleurBt2 = new Color(btn2);
couleurBt2.setRGB(0x999999);
var btn3 =bt3.txt;
couleurBt3 = new Color(btn3);
couleurBt3.setRGB(0x999999);
var btn4 =bt4.txt;
couleurBt4 = new Color(btn4);
couleurBt4.setRGB(0x999999);

function couleurBts(){
if (monBt=="bt1"){
couleurBt1 = new Color(btn1);
couleurBt1.setRGB(0x000000);
couleurBt2 = new Color(btn2);
couleurBt2.setRGB(0x999999);
couleurBt3 = new Color(btn3);
couleurBt3.setRGB(0x999999);
couleurBt4 = new Color(btn4);
couleurBt4.setRGB(0x999999);

}else if (monBt=="bt2"){
couleurBt1 = new Color(btn1);
couleurBt1.setRGB(0x999999);
couleurBt2 = new Color(btn2);
couleurBt2.setRGB(0x000000);
couleurBt3 = new Color(btn3);
couleurBt3.setRGB(0x999999);
couleurBt4 = new Color(btn4);
couleurBt4.setRGB(0x999999);

}else if (monBt=="bt3"){
couleurBt1 = new Color(btn1);
couleurBt1.setRGB(0x999999);
couleurBt2 = new Color(btn2);
couleurBt2.setRGB(0x999999);
couleurBt3 = new Color(btn3);
couleurBt3.setRGB(0x000000);
couleurBt4 = new Color(btn4);
couleurBt4.setRGB(0x999999);
}else if (monBt=="bt4"){
couleurBt1 = new Color(btn1);
couleurBt1.setRGB(0x999999);
couleurBt2 = new Color(btn2);
couleurBt2.setRGB(0x999999);
couleurBt3 = new Color(btn3);
couleurBt3.setRGB(0x999999);
couleurBt4 = new Color(btn4);
couleurBt4.setRGB(0x000000);
}
}
// 4 boutons: bt1, bt2.....
var curBouton;
for (var i = 1; i <= 4; i ++)
{
curBouton = this ["bt" + i];
curBouton.num = i;
this ["bt" + i].xScaleTween = new Tween (curBouton, "_xscale", mx.transitions.easing.Regular.easeOut, curBouton._xscale, 100, 0.5, true);
this ["bt" + i].yScaleTween = new Tween (curBouton, "_yscale", mx.transitions.easing.Regular.easeOut, curBouton._yscale, 100, 0.5, true);
curBouton.onRelease = function (){
trace (i);  // affiche 5 pour tous les boutons -> donc pas bon
trace (this.num);  // affiche la valeur de i au moment où le onRelease a été créé -> c'est bon :)
monBt = "bt" + this.num;
trace ("monBt : " + monBt);
couleurBts(); //changement de couleur du bouton
}
curBouton.onRollOver = function ()
{
this.xScaleTween.continueTo (150, 0.5);
this.yScaleTween.continueTo (150, 0.5);
}
curBouton.onRollOut = function ()
{
this.xScaleTween.continueTo (100, 0.5);
this.yScaleTween.continueTo (100, 0.5);
}
}
////////////////////////////




Commentaire de zoukozouko le 21/11/2005 19:31:56

bali_balo, tu pretends avoir fait beaucoup de projet flash...
J'ai de serieu doutes sur tes compétences et les résultats obtenu.
Il est aujourd'hui impossible pour une boite d'infographie qui se respecte de présenter un projet flash sans AS.
Et si tu y es parvenu, tout ne doit pas voler bien haut, avec de simples et uniques interpolations...
Enfin, bon courage pour la suite...

http://uejfbx.free.fr ----> To be continued...

Commentaire de bali_balo le 21/11/2005 19:50:45

Je n'ai SUREMENT pas dit que je ne m'était pas d'AS dans mes fichiers...
Au contraire, ce que je "critique" ( je l'ai mis entre guillemets... ) c'est que la première source qu'il avait se faisait en "3 / 4 " de secondes, c'est tou, avec UN PEU d'interpolation, et BEAUCOUP de code...
C'est mieux là...?
( en + chui un fou de l'optimisation, mm si c pour gagné une ligne de code... )
Surtout qu'en plus je suis à l'origine développeur et non infographiste ou autre...Je fait énormément de poo, d'études d'algo complexe, etc.



En gros, ce que je voulais dire...c'est que jamais je n'aurais été capable de faire un si gros tas de code pour un si simple résultat...




C'est juste que au fil du temps, avec les demandes précentes de certain clients....j'ai perdu plaisir à faire du code compliquer... =]
Et à ne faire que du beau pour le plaisir des yeux du clients :)...
Y sen fou lui de savoir lalgo derrière, + c beau, mieux c'est!!!

Alors arrêté tous de dire que je critique la source ou que je ne voit pas l'intéret de la source. Si je la vois, j'ai vu bon nombre d'application avec les Tweens...Mais c'est juste pour le plaisir =]
Je vais même m'y mettre bientôt!!!

Même si je ne voit pas trop l'intéret ici présent, essayer de comprendre met raison au moins...Sa serait sympa, au lieu de m'enfoncer...

Salut et bon courage à tous...

bali_balo.... =]

Commentaire de zoukozouko le 21/11/2005 20:55:21

bon, b tu m'avais fait peur. Mes clients sont si pointilleux, que je jalousais les tiens.
Mais maintenant j'ai bien compris.
en tout cas je trouve cett source tres interessante. Elle met en avant des classes que je n'avais pas encore vues.
Merci et bravo.
7/10

Commentaire de slimflash le 22/11/2005 01:20:29

Je viens de mettre à jour la source... voir commentaire en haut de page.
N'hésitez pas à voir le test que j'ai commencé à developper en flash8 :
http://test.richardeau.net/menu/
Et notez maintenant que c'est optimisé :)
-= SlimFlash =-

Commentaire de bali_balo le 08/12/2005 15:35:21

MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI
oooooohhhhhhhhhhhhhhhhhhhhhhhh  MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI

J'ai commencé qq projet flash en utilisant les Tweens par programmation............. P----N que c'est PUISSANT!!!!!!!!!!!!!!!!

JE M'EN REMET PLUS!!!!!!!!!!!!!


MERCI MERCI SlimFlash de NOUS avoir fait découvrir ceci...
Maintenant, je vais décortiqué comme u nmalade les classes de Flash!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI



bali_balo.... =]
(eh bien le voila l'intéret... =) )

Commentaire de slimflash le 09/12/2005 08:35:27

Ah, ben ça fait plaisir, pour une fois que j'apporte qq chose dans un domaine qui n'est pas vraiment mon fort (la prog). C'est vrai que toi bali balo, depuis que j'ai commencé à utiliser les tweens et autres classes, j'ai complètement revu ma façon de réaliser un site ! C'est bcp + fluide, ça prend en compte les positions de chaque clip à chaque frame... Bref, c'est puissant !

Bon, par contre une note pour une source tout de même intéressante.... allez-y, notez moi !!
Pour vous convaincre de l'utilité des tweens, regardez l'exemple que j'ai mis en ligne en flash8 : http://test.richardeau.net/menu/
ca me permet de gérer l'ombre, son intensité et sa taille en fonction du papillon qui vole. Faîtes le test de passer du bouton services à bio... vous verez les changements du papillon !

Allez, maintenant, j'aimerai bien avoir d'autres tuto sur les classes...
A+

Commentaire de Mafassure le 09/12/2005 12:57:22 administrateur CS

Simplifier  l’ecriture :
Tween = new Tween (bt1, "_y", Regular.easeOut, bt1._y, 100, 1, true);
Cf mon premier commentaire


Ne fait référence a rien dans ton exemple !!! ???
import Tools.Delay
Loader = new Tools.myLoader (indicateurParDefaut );



Le code est de plus en plus propre et clair…

PS : le code dans une .as n’apporte rien, bien au contraire ca complique la tache
-> 2 fichiers alors qu’un seul est suffisant dans ce cas

A+

Commentaire de slimflash le 09/12/2005 13:38:18

en effet, la fonction de delay est comprise dans une class qui a été rédigée par top30 il me semble... tres utile. J'ai gardé les fichiers qui sont dans un dossier "Tools". Il est vrai qu'ici je ne l'utilise pas, j'avais oublié de l'enlever. Idem pour le loader ! donc, effacer :
/*
import Tools.Delay
Loader = new Tools.myLoader (indicateurParDefaut );
*/

As-tu regardé la nouvelle source (version 3 à télécharger, je n'ai pas copié le code dans les messages) ? car à part déclarer les tween comme ça : Tween = new Tween (bt1, "_y", Regular.easeOut, bt1._y, 100, 1, true); je ne voit pas trop comment procéder... je cale donc... merci d'en dire + ;)

Pour ce qui est de faire des fichiers  .as externes, je trouve celà plutôt pratique car j'utilise Sepy et la rédaction est bcp + claire et je le met plein écran plutôt que d'avoir à jouer des fenêtres sous flash (je suis designer et je dois donc avoir bcp de palettes ouvertes à la fois). Je vois donc très bien l'ensemble du code.
Autre avantage : on peut aussi faire des fichiers .as différents si on veux classer les différents types d'actions. Ainsi, qd je fais un site, je fais un .as pour l'interface, un autre pour les anims. Rien n'empêche de faire appel au code des 2 fichiers pour ne pas dupliquer, il faut juste bien cibler avec un _root.

Voilou... et merci pour les feed-back :)
-= Slim Flash =-

Commentaire de Mafassure le 09/12/2005 13:48:31 administrateur CS

en effet c'est corriger (en partie : ligne 56..)

Sepy est un super éditeur de code en effet....

Commentaire de poplin le 16/12/2005 15:58:51

une question d'un novice, comment fais-tu pour mettre un lien sur les boutons pour appeler une autre page ?
soyez indulgent dans votre réponse ;-))
merci !

Commentaire de bali_balo le 16/12/2005 16:39:05

utilise la fonction getUrl();

(voir l'aide de flash touche F1 )

Commentaire de poplin le 16/12/2005 19:34:02

oui je connais bien cette fonction :-) mais j'aurai aimé comprendre dans l'exemple de se menu, que je trouve vraiment très sympa, car je trouve rien dans le code qui en parle j'ai bien essayer par mes propres moyen mais impossible de la faire marché est ce qu'il faut la mettre dans le fichier menu3.as si oui où, ou alors dans le fichier flash et si oui ou
merci beaucoup par avance !

Commentaire de bali_balo le 16/12/2005 19:36:26

Tu mets dans les gestionnaire on(press) des boutons ( ou bien même onPress = function() {...}

le getUrl() que tu connais..et puis c tout!!!

bali_balo....=]

Commentaire de poplin le 16/12/2005 21:20:07

cool merci de ta réponse je vais tester tout ça ! :-)))

Commentaire de xeonarno le 27/02/2007 19:56:46

Bonjour à tous,

J'ai lu vos remarques. Pour résumer, il semble que bali_balo est envie de nous faire partager beaucoup de choses.

Pour ceux qui voudrait de l'aide sur les tweens :

www.developpez.org --> rechercher : Tween flash

Ils ont eu la bonne idée de nous donner de l'aide.

Pour simple remarque : ne plus utilisé on(press) mais uniquement onPress = function (){}
Par contre essayez d'utilisé plutôt onRelease qui correspond plus à un réflexe humain que onPress.

Ton idée de départ SlimFast me parait un peu bourine et peut être aurait été interessant que tu t'intéresse au algorythme de de grossissement des menus sur Mac OS X. Je crois que quelqu'un l'a fait sur ce site. Ils t'économiseront bcp d'heures de travail.
En ce qui concerne le changement de couleur, essaye de privilégié la piste graphique plutot que prog. Plus simple actuellement et assez bien optimisé.

Je sais que je n'apporte pas de vrai réponse mais je pense que certaines de ces pistes pourront t'aider à améliorer ce charmant petit menu.

Bon courage,

Xeonarno

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

des titres de menu qui changent de couleur! [ par bengz ] pas facile quand on débute.....Bonjour je debute en AS et je suis face à un probleme:-sur fichier en question j'ai plusieurs menus de couleur blanc, q Faire un menu choix de couleurs [ par letilor ] Bonjour a tous.Tout d'abord excusez moi si j'ai pas posté dans la bonne section mais vu que ma demande est floue la categorie l'est aussi lolSoit...Je Comment changer la couleur du sous menu en as3 [ par hayaloum ] Bonjour,je suis en train de faire un menu simple, sauf que je suis novice en flash et je ne connais pas le lexique des fonctions:en faite j ai 2 pb:-1 AS3 probleme boucle dans une succession d'images avec le même mvt issues d'un XML [ par vandaleavalanche ] Salut, j'ai l'habitude des animations flash non dynamiques je suis designer mais je suis un codeur as3 débutant : je dois faire dans le cadre d'une a Menu animé flash [ par Viiik ] Bonsoir à tous, je développe une page d'accueil d'un site web en flash avec flash CS4 en actionscript 2 car je n'arrive pas à faire des liens avec le Menu verticale, tween's problem [ par fanatikx ] Salut, J'ai crée pour mon site un menu vertical, au rollover des boutons je fais appel pour chacun à des tween (genre bouton blanc et au rollover, u Boucle variable dynamique tween [ par mic1331 ] Bonjour a tous, je fais appelle a vos lumières car j'ai chercher sur pas mal de forum mais la solution n'ai toujours pas la bonne ! Donc je suis en as Menu vertical en boucle [ par kitty38000 ] Bonjour, J'aimerai créer un menu vertical en flash, qu'il serait possible de faire défiler grâce à un drag&drop (avec une zone de contrainte) pour qu Aide pour le positionnement d'un Drop down menu Flash cs4 [ par sleeman26 ] Bonjour à tous, J'ai créé un menu horizontal avec sous-menus à l'aide de Flash cs4 et tout fonctionne à merveille. Cependant, lorsque je l'insert dan Flash menu dynamique avec XML intégration swfaddress [ par marine34000 ] Bonjour à tous, Sur un de mes site, j'ai fait un menu flash qui appel un xml pour se constituer, le problème c'est que je voulais ajouter swfaddress


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,983 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales