Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash
Flash Forum d'entraide sur la technologie Flash (Cours, FAQs, Sources)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/06/2007, 11h28   #1
Invité de passage
 
Inscription : mars 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 10
Points : 2
Points : 2
Par défaut Problème avec onEnterframe

Bonjour.

Je cherche à faire une fonction qui fait qu'au rollOver sur un clip, ce clip grossit puis retrécit.

La fonction marche bien sur un clip seul, mais quand j'ai deux clips l'un à côté de l'autre, et que je passe directement de l'un à l'autre, le 2e rollOver stoppe l'exécution du 1er.

Pour avoir un changement de taille progressif, j'ai utilisé un onEnterFrame. Je ne sais pas si c'est la bonne solution, ou s'il y a plus simple.

Voici le code que j'ai déjà écrit. Il est important que tout soit géré par une fonction, et je ne connais pas les tailles de mes clips à l'avance. (Il y'en a une trentaine...)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var tailleMax = 10;
var speed = 2;
 
function grow(clip) {
	clip.clipOrigX = clip._width;
	var top = 'no';
	onEnterFrame = function() {
		if(clip._width<clip.clipOrigX+tailleMax && top=='no') {
			clip._width = clip._width + speed;
			clip._height = clip._height + speed;
		}
		if(clip._width>=clip.clipOrigX+tailleMax) {
			top='yes'
		}
		if(top=='yes' && clip._width>clipOrigX) {
			clip._width = clip._width - speed;
			clip._height = clip._height - speed;
		}
	}
}
 
emg.onRollOver	= function() { grow(this); }
 
en.onRollOver	= function() { grow(this); }
<nbweb> est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 11h53   #2
Membre chevronné
 
Avatar de luta
 
Inscription : novembre 2003
Messages : 1 038
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 1 038
Points : 691
Points : 691
Envoyer un message via MSN à luta
et ça?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var tailleMax = 10;
var speed = 2;
 
function grow(clip) {
	clip.clipOrigX = clip._width;
	var top = 'no';
	clip.onEnterFrame = function() {
		if(this._width<this.clipOrigX+tailleMax && top=='no') {
			this._width = this._width + speed;
			this._height = this._height + speed;
		}
		if(this._width>=this.clipOrigX+tailleMax) {
			top='yes'
		}
		if(top=='yes' && this._width>clipOrigX) {
			this._width = this._width - speed;
			this._height = this._height - speed;
		}
	}
}
 
emg.onRollOver	= function() { grow(this); }
emg.onRollOut	= function(){delete this.onEnterFrame;}
en.onRollOver	= function() { grow(this); }
en.onRollOut	= function(){delete this.onEnterFrame;}

personnelement j aurais mis la fonction dans le clip directement mais c est un jugement personnel
luta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 12h05   #3
Invité de passage
 
Inscription : mars 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 10
Points : 2
Points : 2
Avec clip.onEnterFrame ca fonctionne effectivement.

Mais que veux-tu dire par "j'aurais mis la fonction directement dans le clip"?
Mon but était de pouvoir ajouter n'importe quel clip et que la fonction soit facilement activable (ici juste une ligne à ajouter et un seul terme à changer).
<nbweb> est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 13h37   #4
Membre chevronné
 
Avatar de luta
 
Inscription : novembre 2003
Messages : 1 038
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 1 038
Points : 691
Points : 691
Envoyer un message via MSN à luta
alors c est bon
Mais fait attention au fait que l on utilise le gestionaire onEnterFrame, onRollOver....
du coup si dans ton clip tu as deja un gestionaire tu risques de l ecraser
luta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h51.


 
 
 
 
Partenaires

Hébergement Web