Tigerlely
Messages postés14Date d'inscriptionmardi 29 mai 2007StatutMembreDernière intervention26 février 2010
-
25 mars 2008 à 12:59
cs_Girou
Messages postés1203Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention23 juillet 2009
-
25 mars 2008 à 15:48
Bonjour à tous,
Voilà, j'ai une question tout bête... comment tester sur Flash si un bouton (par le clic gauche de la souris) est enfoncé afin de répéter une action tant que le clic n'a pas été relâché.
J'ai cru avoir une lueur d'espoir avec onClipEvent(mouseDown){} mais j'ai l'erreur suivante :
**Erreur** Séquence Scene 1, calque bt, image = 1 :Ligne 13 : Les événements clip ne sont autorisés que pour les occurrences clip
onClipEvent(mouseDown){
J'avoue que je ne sais pas trop comment utiliser cette fonction.
Si quelqu'un peux me venir en aide... je lui en serais reconnaissante toute ma vie lol car là j'ai usé tous les forums possible en quête de solutions.
Tigerlely
Messages postés14Date d'inscriptionmardi 29 mai 2007StatutMembreDernière intervention26 février 2010 25 mars 2008 à 15:41
Ca y est, j'ai enfin trouvé ;)
C'est tout bête, en fait j'avais bon depuis le début, mais étais persuadé que cela ne fonctionné pas à l'époque où j'avais fait les tests. Donc pour ceux que cela intéresse voici comment on fait pour faire une action tant que la personne reste cliquée sur le bouton :
//PRINCIPE :
//on affecte une valeur différente à une variable, ici "test" selon que le bouton est abaissé ou relevé
//puis on appelle la fonction "toto", qui défini les actions a effectuées selon l'état du bouton en testant la valeur de notre variable "test"
monBouton.onPress = function () //quand on clic sur le bouton
{
test="ok";
toto();
}
monBouton.onRelease = function () //quand on lâche le bouton
{
test="no";
toto();
}
function toto()
{
onEnterFrame()
{
if(test="ok")
{
//action a répéter quand le bouton est enfoncé
}
if(test="no")
{
//action a effectuer quand le bouton est relaché
}
}
}
Voilà, j'espère que cela aura aidé quelques flasheurs
cs_Girou
Messages postés1203Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention23 juillet 20092 25 mars 2008 à 13:11
Salut,
Ce n'est pas la bonne fonction... comme te le signale de debugger de flash onClipEvent n'est utilisable que pour les movieclip et pas pour les boutons.
De plus onClipEvent(mouseDown) selon moi correspond au bouton.onPress()
Perso j'essayerais un truc du style
nom_bouton.onPress()=function(){
this.onEnterFrame=function(){
// action à repeter chaque frame
// attention au ciblage tout de même !!
}
}
nom_bouton.onRelease()=function(){
retour="ok"; // Attention dans ce cas 'retour' est une variable dont la porrtée est limitée à la fonction onEnterFrame
toto2(); // voir aussi la portée de toto2, si toto2 est une fonction placée sur le _root, essaye en ciblant _root.toto2()
}
}
cs_Girou
Messages postés1203Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention23 juillet 20092 25 mars 2008 à 15:48
Attention tout de même à ne pas redéfinir ailleurs la fonction onEnterFrame, cela écraserait les actions définie par la fonction toto() car ta solution crée un onEnterFrame sur _root !!!
D'autre part, dans ton cas l'appel de la fonction toto() n'est pas utile, il suffit de la définit une fois hors de la fonction toto()
monBouton.onPress = function () //quand on clic sur le bouton
{
test="ok";
}monBouton.onRelease = function () //quand on lâche le bouton
{
test="no";
}
onEnterFrame()
{
if(test="ok")
{
//action a répéter quand le bouton est enfoncé
}
if(test="no")
{
//action a effectuer quand le bouton est relaché
}
}