begin process at 2008 05 17 07:52:45
1 173 922 membres
53 nouveaux aujourd'hui
13 973 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MENU VERTICAL ELASTIQUE FLUIDE


Information sur la source

Description

Simple menu vertical, non dynamique, élastique et facilement paramétrable dans Flash.

Version du Flash : 8

Je partage cette source avec vous, ça ne vient pas de moi, ce n'est pas moi qui l'a codée, on m'a offert le code, j'ai retravaillé le tout et je vous donne ma source telle que je l'ai utilisée.

Source

  • _global.menuNum = 5
  • _global.spd = 4
  • for ( i=1 ; i<=menuNum ; i++ ) {
  • inNum = 1
  • while ( inNum > maxNum ) {
  • if ( this['sub'+i+inNum] == undefined ) {
  • maxNum = inNum+1
  • }
  • this['sub'+i+inNum]._alpha = 0
  • this['sub'+i+inNum]._y = - 200
  • inNum++
  • }
  • this['subNum'+i] = inNum - 2
  • this['subHei'+i] = this['subNum'+i] * 15 + 34
  • maxNum = 0
  • }
  • this.onEnterFrame = function() {
  • for ( i=1 ; i<=menuNum ; i++ ) {
  • if ( name ) {
  • if ( name == i ) {
  • this['line'+i]._y += (this['line'+(i-1)]._y + this['subHei'+i] - this['line'+i]._y )/spd
  • this['btn'+i]._height = this['subHei'+i]
  • this['mtx'+i]._y += ( this['line'+(i-1)]._y - 0 - this['mtx'+i]._y )/spd
  • dn = 20
  • for ( n=1 ; n<=this['subNum'+i] ; n++ ) {
  • dn += 15
  • this['sub'+i+n]._alpha += ( 100 - this['sub'+i+n]._alpha)/spd
  • this['sub'+i+n]._y = Math.round(this['mtx'+i]._y + dn)
  • }
  • dn = 0
  • } else {
  • this['line'+i]._y += (this['line'+(i-1)]._y + 30 - this['line'+i]._y )/spd
  • this['btn'+i]._height = 30
  • this['mtx'+i]._y += ( this['line'+(i-1)]._y + 26 - this['mtx'+i]._y )/spd
  • for ( n=1 ; n<=this['subNum'+i] ; n++ ) {
  • this['sub'+i+n]._alpha = 0
  • this['sub'+i+n]._y = -200
  • }
  • }
  • } else {
  • this['line'+i]._y += (this['line'+(i-1)]._y + 30 - this['line'+i]._y )/spd
  • this['btn'+i]._height = 30
  • this['mtx'+i]._y += ( this['line'+(i-1)]._y + 26 - this['mtx'+i]._y )/spd
  • for ( n=1 ; n<=this['subNum'+i] ; n++ ) {
  • this['sub'+i+n]._alpha = 0
  • this['sub'+i+n]._y = -200
  • }
  • }
  • this['mask'+i]._y += (this['line'+(i-1)]._y - this['mask'+i]._y)/spd
  • this['btn'+i]._y = this['line'+(i-1)]._y
  • }
  • }
  • for( i=1 ; i<=menuNum ; i++ ) {
  • this['btn'+i].onRollOver = function() {
  • name = this._name.substring(3,4)
  • }
  • this['btn'+i].onRollOut = function() {
  • name = undefined
  • if ( _root.page ) {
  • name = _root.page
  • }
  • }
  • this['btn'+i].onRelease = function() {
  • name = this._name.substring(3,4)
  • getURL(_root['connURL'+name+'0'])
  • }
  • for ( n=1 ; n<=menuNum ; n++ ) {
  • this['sub'+i+n].onRollOver = function() {
  • name = this._name.substring(3,4)
  • }
  • this['sub'+i+n].onRollOut = function() {
  • name = undefined
  • if ( _root.page ) {
  • name = _root.page
  • }
  • }
  • this['sub'+i+n].onRelease = function() {
  • name = this._name.substring(3,5)
  • getURL(_root['connURL'+name])
  • }
  • }
  • }
  • if ( _root.page ) {
  • name = _root.page
  • }
_global.menuNum = 5
_global.spd = 4
for ( i=1 ; i<=menuNum ; i++ ) {
	inNum = 1
	while ( inNum > maxNum ) {
		if ( this['sub'+i+inNum] == undefined ) {
			maxNum = inNum+1
		}
		this['sub'+i+inNum]._alpha = 0
		this['sub'+i+inNum]._y = - 200
		inNum++
	}
	this['subNum'+i] = inNum - 2
	this['subHei'+i] = this['subNum'+i] * 15 + 34
	maxNum = 0
}

this.onEnterFrame = function() {
	for ( i=1 ; i<=menuNum ; i++ ) {
		if ( name ) {
			if ( name == i ) {
				this['line'+i]._y += (this['line'+(i-1)]._y + this['subHei'+i] - this['line'+i]._y )/spd
				this['btn'+i]._height = this['subHei'+i]
				this['mtx'+i]._y += ( this['line'+(i-1)]._y - 0 - this['mtx'+i]._y )/spd
				dn = 20
				for ( n=1 ; n<=this['subNum'+i] ; n++ ) {
					dn += 15
					this['sub'+i+n]._alpha += ( 100 - this['sub'+i+n]._alpha)/spd
					this['sub'+i+n]._y = Math.round(this['mtx'+i]._y + dn)
				}
				dn = 0
			} else {
				this['line'+i]._y += (this['line'+(i-1)]._y + 30 - this['line'+i]._y )/spd
				this['btn'+i]._height = 30
				this['mtx'+i]._y += ( this['line'+(i-1)]._y + 26 - this['mtx'+i]._y )/spd
				for ( n=1 ; n<=this['subNum'+i] ; n++ ) {
					this['sub'+i+n]._alpha = 0
					this['sub'+i+n]._y = -200
				}
			}
		} else {
			this['line'+i]._y += (this['line'+(i-1)]._y + 30 - this['line'+i]._y )/spd
			this['btn'+i]._height = 30
			this['mtx'+i]._y += ( this['line'+(i-1)]._y + 26 - this['mtx'+i]._y )/spd
			for ( n=1 ; n<=this['subNum'+i] ; n++ ) {
				this['sub'+i+n]._alpha = 0
				this['sub'+i+n]._y = -200
			}
		}
		this['mask'+i]._y += (this['line'+(i-1)]._y - this['mask'+i]._y)/spd
		this['btn'+i]._y = this['line'+(i-1)]._y
	}
}

for( i=1 ; i<=menuNum ; i++ ) {
	this['btn'+i].onRollOver = function() {
		name = this._name.substring(3,4)
	}
	this['btn'+i].onRollOut = function() {
		name = undefined
		if ( _root.page ) {
			name = _root.page	
		}		
	}
	this['btn'+i].onRelease = function() {
		name = this._name.substring(3,4)	
		getURL(_root['connURL'+name+'0'])
	}
	for ( n=1 ; n<=menuNum ; n++ ) {
		this['sub'+i+n].onRollOver = function() {
			name = this._name.substring(3,4)
		}
		this['sub'+i+n].onRollOut = function() {
			name = undefined
			if ( _root.page ) {
				name = _root.page	
			}			
		}
		this['sub'+i+n].onRelease = function() {
			name = this._name.substring(3,5)
			getURL(_root['connURL'+name])
		}
	}
}
if ( _root.page ) {
	name = _root.page	
}
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    Commentaire de pegase31 le 30/01/2008 22:01:11

    Salut, quand tu dis "facile à modifier", tu estimes qu'il faut donc recréer un calque de masque et un calque masqué à chaque fois que tu veux ajouter un menu ?
    Et si on veut ajouter 25 menus, il faut donc faire 50 calques ?
    Et si on veut modifier les noms des menus, on doit donc éditer la source à chaques fois ?
    Et si on doit mettre 45 catégories dans un menu, on fait comment ?

    Peg'

    ps : Oui, je sais, mais j'ai pas pu m'empêcher ;)

  • signaler à un administrateur
    Commentaire de MADenigma le 31/01/2008 08:41:08

    lool ^^'
    Bon ben, tu tiens bon et tu modifie tout ça jusqu'à ce que tu finisse avec le résultat voulu.

    La remarque de PEGASE31 est très pertinente en effet, toutefois, ce menu n'est pas fait pour être dynamique ni souvent modifié mais son utilisation est utile pour avoir une "belle" élasticité dans les éléments du menu.

    Si on souhaite avoir 45 catégories je pense que le menu perderait tout son "charme" :)

  • signaler à un administrateur
    Commentaire de smoochy le 31/01/2008 08:47:07

    je vais pas encore noter, parce que j'ai pas encore regardé le code (je regaredrai plus en détail ce soir après le boulot),
    mais je tenais à signaler que ca fait plaisir de voir une source soignée graphiquement (sobre, beau, sans couleurs criardes
    qui feraient gerber un caméléon, un vrai bonheur pour mes petits yeux de graphiste^^)... et en plus dans les menu verticaux
    que j'ai vu dans ce site, c'est un des plus intéressant. Après peut-être qu'avec 155 sous menu ca ne marche pas,
    mais j'en utilise rarement plus de 3 ou 4, donc dans mon cas cette source me sera certainement utile un jour. Merci

  • signaler à un administrateur
    Commentaire de pegase31 le 31/01/2008 11:23:51

    ben désolés de te dire que pour beaucoup de gens "pas dynamique" = "pas interessant" ...
    de plus ton élasticité peut tout à fait être gardée avec le dynamisme. Ce serait une évolution trés interessante qui serait certainement accompagnée d'une belle note (avec une meilleure écriture du code au passage, surtout pour les appels de clips).

    Je te laisse faire ça et je note après.

    Peg'

  • signaler à un administrateur
    Commentaire de rambc le 31/01/2008 13:42:58

    UNE SUGGESTION : pouvoir taper le menu dans un fichier XML serait une très bonne évolution car cela rendrait ton menu modifiable par tout le monde, y compris par ceux qui n'ont pas d'accès à des outils de développement Flash.

  • signaler à un administrateur
    Commentaire de MADenigma le 01/02/2008 08:43:32

    bon, je vais voir comment avoir du dynamisme sinon je proposerai quelquechose d'autre avec du XML cette fois :)

  • signaler à un administrateur
    Commentaire de novaflash le 01/02/2008 13:07:08

    ah tiens il ressemble bougrement (jusqu'aux variables!) aux codes
    vendus par freegine... mais ce serait du mauvais esprit, réservé
    d'ordinaire au spécialiste du genre ! et puis ça entrainerait
    un vol manifeste de code (c). Donc non, ce n'est pas
    du pompage. ça n'existe pas.


  • signaler à un administrateur
    Commentaire de MADenigma le 01/02/2008 14:58:25

    Apprenez à lire chers élèves : j'ai bien dit "...Je partage cette source avec vous, ça ne vient pas de moi, ce n'est pas moi qui l'a codée, on m'a offert le code, j'ai retravaillé le tout et je vous donne ma source telle que je l'ai utilisée."

    Alors j'ai bien précisé que ce code n'est pas le mien, qu'il vienne de freegine ou de "payant-gine" ^^ ça ne me concerne pas ! Si vous en avez besoin alors faites en bon usage et partagez la connaissance.

  • signaler à un administrateur
    Commentaire de muca le 02/02/2008 00:21:47 10/10

    bravo tout simplement !!!

  • signaler à un administrateur
    Commentaire de novaflash le 02/02/2008 06:08:51

    "Apprenez à lire"...
    trêve d'amphigouris!
    Freegine sont des sources commerciales. Et si ça te concerne, c'est du piratage
    pur et simple. Je sais que l'éthique est un concept vague pour certains.
    Pour ma part, je clos là le débat.


  • signaler à un administrateur
    Commentaire de alamiabdou le 15/03/2008 04:54:20

    merci c'est tres bien fait mais quant je clique sur accueil par exemple, le lien s'ouvre sur la meme page et bien sur le menu disparait, meme si j'ai propagé la page html en deux partie avec <frameset> tjr le meme resultat.aidez moi stp

Ajouter un commentaire

Discussions en rapport avec ce code source

pb menu deroulant actionscript 2.0 par corinne59

déplacement élastique par tigaru

Menu par Melofromsssm

Menu en actionscript par lamicho52

SharedObject par Chrisrelleb

Help Me Menu dynamique avec des clips par clyver38

menu sous flash par sambee

Erreur clips non déclarés comment faire ? par florian2a

barre navigation par gonimus

Menu Dock par MangueCarotte

Appels d'offres

Pub



Snippets en rapport

CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS