Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
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 21/01/2011, 16h58   #1
Membre à l'essai
 
Homme
Audiovisuel
Inscription : décembre 2006
Messages : 93
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Audiovisuel
Secteur : Communication - Médias

Informations forums :
Inscription : décembre 2006
Messages : 93
Points : 20
Points : 20
Envoyer un message via MSN à Elendill
Par défaut AS3 onmouseover (Flash CS5)

Bonjour !

Alors voilà je voudrais qu'au survol de la souris mes boutons s'agrandissent progressivement et inversement quand on enlève la souris.

J'ai fait un calque sur lequel j'ai mes boutons (image converti en symbole "bouton") et un autre calque sur lequel je mets tout mon code, à savoir :

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
26
27
28
29
30
31
32
 
 
function over(btn){
 
	if(btn.height < 40)
	{
		btn.width + = 2;
		btn.height + = 2;
 
		var timerSynchro:Timer = new Timer( 500, 1) ;
		timerSynchro.addEventListener( TimerEvent.TIMER, over(btn) ) ;
		timerSynchro.start();
	}
 
}
 
function out(btn){
 
	if(btn.height > 30)
	{
		btn.width - = 2;
		btn.height - = 2;
 
		var timerSynchro:Timer = new Timer( 500, 1) ;
		timerSynchro.addEventListener( TimerEvent.TIMER, out(btn) ) ;
		timerSynchro.start();
	}
 
}
 
bouton_ps.addEventListener(MouseEvent.MOUSE_OVER, over(bouton_ps) );
bouton_ps.addEventListener(MouseEvent.MOUSE_OUT, out(bouton_ps) );
Inutile de dire que je suis débutant ^^ je suis plutôt html css et un peu javascript.
Je voulais un équivalent du setTimeout en JS donc j'ai vu qu'on pouvait utiliser timerSynchro.

Bref, je ne sais pas ce qui ne va pas là dedans.
Merci beaucoup
Elendill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2011, 19h39   #2
Membre régulier
 
Romain Dedenis
Inscription : janvier 2010
Messages : 68
Détails du profil
Informations personnelles :
Nom : Romain Dedenis
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2010
Messages : 68
Points : 87
Points : 87
Salut, alors pour ton problème, regarde du coté des tweens

http://livedocs.adobe.com/flash/9.0_fr/ActionScriptLangRefV3/fl/transitions/Tween.html#Tween%28%29
Romain D. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2011, 20h21   #3
Membre à l'essai
 
Homme
Audiovisuel
Inscription : décembre 2006
Messages : 93
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Audiovisuel
Secteur : Communication - Médias

Informations forums :
Inscription : décembre 2006
Messages : 93
Points : 20
Points : 20
Envoyer un message via MSN à Elendill
heuuu j'avais jamais vu la doc adobe mais elle est un peu pourri ya pas d'exemple et je suis pas trop sûr de ce que fait la fonction mdrrrr ^^

Je vais jeter un oeil sur google
Elendill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2011, 20h26   #4
Membre à l'essai
 
Homme
Audiovisuel
Inscription : décembre 2006
Messages : 93
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Audiovisuel
Secteur : Communication - Médias

Informations forums :
Inscription : décembre 2006
Messages : 93
Points : 20
Points : 20
Envoyer un message via MSN à Elendill
Ok je vois mais le problème le plus important c'est comment j'exécute mes transformations avec les addEventListener.
C'est avant tout ça qui m'empêche d'avancer j'arrive pas à faire exécuter mes fonctions au survol de la souris...
Elendill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2011, 23h32   #5
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Bonsoir,

tu ne peux pas passer d'arguments ici à over() et out() :

Code :
1
2
3
 
bouton_ps.addEventListener(MouseEvent.MOUSE_OVER, over(bouton_ps) );
bouton_ps.addEventListener(MouseEvent.MOUSE_OUT, out(bouton_ps) );
il s'agit non pas d'appel de fonction mais de référence de fonction. Teste ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
function over(event:MouseEvent){
        var btn:Button = event.target as Button;
 
	if(btn.height < 40)
	{
		btn.width + = 2;
		btn.height + = 2;
 
		var timerSynchro:Timer = new Timer( 500, 1) ;
		timerSynchro.addEventListener( TimerEvent.TIMER, over) ;
		timerSynchro.start();
	}
 
}
 
 
bouton_ps.addEventListener(MouseEvent.MOUSE_OVER, over);
bouton_ps.addEventListener(MouseEvent.MOUSE_OUT, out);
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 12h10   #6
Membre à l'essai
 
Homme
Audiovisuel
Inscription : décembre 2006
Messages : 93
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Audiovisuel
Secteur : Communication - Médias

Informations forums :
Inscription : décembre 2006
Messages : 93
Points : 20
Points : 20
Envoyer un message via MSN à Elendill
Ca fonctionne toujours pas
Elendill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 12h26   #7
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Montre ton code stp
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 12h31   #8
Membre à l'essai
 
Homme
Audiovisuel
Inscription : décembre 2006
Messages : 93
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Audiovisuel
Secteur : Communication - Médias

Informations forums :
Inscription : décembre 2006
Messages : 93
Points : 20
Points : 20
Envoyer un message via MSN à Elendill
Exactement celui que t'as remis au dessus j'ai effacer tout le reste qui fonctionnait pas

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
 
function over(event:MouseEvent){
        var btn:Button = event.target as Button;
 
	if(btn.height < 40)
	{
		btn.width + = 2;
		btn.height + = 2;
 
		var timerSynchro:Timer = new Timer( 500, 1) ;
		timerSynchro.addEventListener( TimerEvent.TIMER, over) ;
		timerSynchro.start();
	}
 
}
 
 
bouton_ps.addEventListener(MouseEvent.MOUSE_OVER, over);
bouton_ps.addEventListener(MouseEvent.MOUSE_OUT, out);
Elendill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 12h44   #9
Membre éprouvé
 
Avatar de IP-Fix
 
Inscription : mars 2006
Messages : 406
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 406
Points : 433
Points : 433
Envoyer un message via MSN à IP-Fix
Le plus simple pour ce genre d effet est de passer par une lib de tween comme TweenLite ou eaze qui sont des librairies gratuite et tres efficace :
http://www.greensock.com/tweenlite/

tu copie la lib dans ton dossier et ensuite :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import com.greensock.*;
 
function onRollOver(e:Event) {
        var btn:Button = e.target as Button;
	TweenLite.to(btn,.25,{scaleX:1.2,scaleY:1.2});
}
 
function onRollOut(e:Event) {
        var btn:Button = e.target as Button;
	TweenLite.to(btn,.25,{scaleX:1,scaleY:1});
}
 
bouton_ps.addEventListener(MouseEvent.MOUSE_OVER, onRollOver);
bouton_ps.addEventListener(MouseEvent.MOUSE_OUT, onRollOut);
les exemple sur le site de tweenlite sont tres parlant et il te genere le code suivant les effets que tu veux.

Bon tweens =)
__________________
Mon nouveau blog : Flash-Dungeon : AS3 / Objectif-C
IP-Fix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 13h03   #10
Membre à l'essai
 
Homme
Audiovisuel
Inscription : décembre 2006
Messages : 93
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Audiovisuel
Secteur : Communication - Médias

Informations forums :
Inscription : décembre 2006
Messages : 93
Points : 20
Points : 20
Envoyer un message via MSN à Elendill
Merci beaucoup mais mon problème doit venir d'autre part parce que rien ne marche...

Je récapitule.

- J'ai un calque "ActionScript" dans lequel je mets tout mon code

- Ensuite j'ai un calque par bouton, nommé "bouton_xx"

- Dans chacun de ces calques bouton, j'ai un bouton qui est en fait une image converti en symbole type "bouton"

A ce moment je peux "exporter pour actionscript"... J'ai essayer avec et sans et ca ne marche pas...


J'ai meme essayer ca :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
 
function over(event:MouseEvent){
 
	bouton_ps.visible = false;
}
 
function out(event:MouseEvent){
	bouton_ps.visible = true;
}
 
bouton_ps.addEventListener(MouseEvent.MOUSE_OVER, over);
bouton_ps.addEventListener(MouseEvent.MOUSE_OUT, out);
Elendill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 13h10   #11
Membre éprouvé
 
Avatar de IP-Fix
 
Inscription : mars 2006
Messages : 406
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 406
Points : 433
Points : 433
Envoyer un message via MSN à IP-Fix
oublie la conversion de l image en type boutton , elle sert a rien.

Tu export comment ?

Tu export quoi ?
__________________
Mon nouveau blog : Flash-Dungeon : AS3 / Objectif-C
IP-Fix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 13h16   #12
Membre à l'essai
 
Homme
Audiovisuel
Inscription : décembre 2006
Messages : 93
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Audiovisuel
Secteur : Communication - Médias

Informations forums :
Inscription : décembre 2006
Messages : 93
Points : 20
Points : 20
Envoyer un message via MSN à Elendill
Oublier la conversion de l'image en bouton ??? Mais je suis obligé si je veux pouvoir cliquer dessus ... non ?

Exporter ??? heuuu ba je visualise un apercu en flash ... C'était ça la question ?
Elendill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 13h23   #13
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Citation:
Envoyé par Elendill Voir le message
J'ai meme essayer ca :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
 
function over(event:MouseEvent){
 
	bouton_ps.visible = false;
}
 
function out(event:MouseEvent){
	bouton_ps.visible = true;
}
 
bouton_ps.addEventListener(MouseEvent.MOUSE_OVER, over);
bouton_ps.addEventListener(MouseEvent.MOUSE_OUT, out);

tu as bien importé la classe MouseEvent dans ton projet ?
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 13h30   #14
Membre à l'essai
 
Homme
Audiovisuel
Inscription : décembre 2006
Messages : 93
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Audiovisuel
Secteur : Communication - Médias

Informations forums :
Inscription : décembre 2006
Messages : 93
Points : 20
Points : 20
Envoyer un message via MSN à Elendill
non ... :$

mais ca marche toujours pas ...
c'est bien import flash.events.MouseEvent; ?
Elendill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 13h31   #15
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Code :
1
2
 
import flash.events.MouseEvent;
Il n'y a pas de raison que cela fonctionne pas. Tu as une erreur ?
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 13h34   #16
Membre à l'essai
 
Homme
Audiovisuel
Inscription : décembre 2006
Messages : 93
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Audiovisuel
Secteur : Communication - Médias

Informations forums :
Inscription : décembre 2006
Messages : 93
Points : 20
Points : 20
Envoyer un message via MSN à Elendill
Non aucune erreur j'ai juste mon bouton qui ne réagit pas...
Je pourrais utiliser les actions simples mais c'est moche et faut le faire a chaque bouton donc je voudrais vraiment m'en sortir avec ça
Elendill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 13h40   #17
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Commentes tout sauf ces quelques instructions et cela devrait marcher. Ensuite décommentes progressivement jusqu'à ce que cela marche pas. Tu dois avoir un erreur autre part qui fait foirer tes événements
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 14h03   #18
Membre à l'essai
 
Homme
Audiovisuel
Inscription : décembre 2006
Messages : 93
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Audiovisuel
Secteur : Communication - Médias

Informations forums :
Inscription : décembre 2006
Messages : 93
Points : 20
Points : 20
Envoyer un message via MSN à Elendill
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import flash.events.MouseEvent;
 
 
function over(event:MouseEvent){
        var btn:Button = event.target as Button;
 
	if(btn.height < 40)
	{
		btn.width + = 2;
		btn.height + = 2;
 
		var timerSynchro:Timer = new Timer( 500, 1) ;
		timerSynchro.addEventListener( TimerEvent.TIMER, over) ;
		timerSynchro.start();
	}
 
}
 
 
bouton_ps.addEventListener(MouseEvent.MOUSE_OVER, over);
bouton_ps.addEventListener(MouseEvent.MOUSE_OUT, out);
Séquence 1, Calque 'ActionScript', Image 1, ligne 9
1084 : Erreur de syntaxe : identifier est attendu devant assign.

ligne 9 : btn.width + = 2;
Elendill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 14h06   #19
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Teste ceci :

Code :
1
2
 
 var btn:Button = event.currentTarget as Button;
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 14h08   #20
Membre à l'essai
 
Homme
Audiovisuel
Inscription : décembre 2006
Messages : 93
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Audiovisuel
Secteur : Communication - Médias

Informations forums :
Inscription : décembre 2006
Messages : 93
Points : 20
Points : 20
Envoyer un message via MSN à Elendill
meme erreur...
Elendill est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h26.


 
 
 
 
Partenaires

Hébergement Web