Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
965 connectés 

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  Faire apparaître un Bouton Seulement en fin de scène

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Faire apparaître un Bouton Seulement en fin de scène

n°2250605
kenyg
Posté le 11-02-2015 à 14:15:55  profilanswer
 

Bonjour a tous et merci d'avance pour votre aide,
 
Mon problème est que je développe un jeu de carte en actionscript 3
 
Mes cartes apparaissent face retournées côte à côte et mon joueur en choisit 4.
 
Comment faire s'arrêter le movieClip à ce moment précis où le joueur a choisit sa 4ème Carte et faire apparaître un bouton?
 
 
Une idée?

mood
Publicité
Posté le 11-02-2015 à 14:15:55  profilanswer
 

n°2250612
gustave002
Posté le 11-02-2015 à 15:23:00  profilanswer
 

bonjour
pas simple de répondre sans connaitre l’environnement.
tu dis que le joueur choisi ces cartes, je suppose qu'il clic sur les cartes. si c'est le cas  
 
var carte: uint;
 
et quand il clic  
 
carte++;
if (carte == 4){
           tonClip.stop();
}
 
bien sur sans connaitre ce que j' appel l’environnement (la scène, le clip, etc) ma solution est peut être a coté.
 
avec un fla la réponse serait sure.
@+ gustave02

n°2250620
kenyg
Posté le 11-02-2015 à 16:21:37  profilanswer
 

Merci pour cette réponse, je vais essayer tout de suite!
 
Pour répondre à la question, oui, c'est exactement cela mon problème, le joueur à bien les cartes devant lui, on ne voit que le dos des cartes comme pour un tour de magie et il doit cliquer sur 4 cartes pour lancer la scène suivante qui lui permettra de voir son jeu.
 
Donc pour ce qui est de la fonction mélanger, pas de problème, pour faire un bouton "play" "stop" ou "goto" ça je sais faire, c'est juste faire aller à la scène après une action suivante qui me pose problème.
 
Mon autre idée était d'afficher le bouton et de le rendre cliquable qu'après que le jour ait tiré ses cartes mais la encore, même problème.
 
:)

n°2250621
gustave002
Posté le 11-02-2015 à 16:26:29  profilanswer
 

pour le bouton même esprit sauf qu'il faut savoir ou se trouve le bouton déjà sur la scène dans la bibliothèque si oui son nom de classe
 
bref s tu veux que je soit plus précis il me faut ton fla.
 
@+ gustave02

n°2250624
kenyg
Posté le 11-02-2015 à 17:03:31  profilanswer
 

Voila le script, pour faire simple j'ai refait un script "Test" à part.
 
Donc il y a ici 5 cartes toutes nommées symbole1, symbole2,etc (normalement c'est jusqu'à 32 mais on est dans le test) qui s'effacent dès que le joueur clique dessus, comme je suis novice en actionscript, j'ai fait autant de movieClip que de cartes, ce qui donne:
stop();
 
movie_Clip.addEventListener(MouseEvent.CLICK, fl_ClickToHide);
 
function fl_ClickToHide(event:MouseEvent):void
{
 movieClip_1.visible = false;
}
 
movieClip_2.addEventListener(MouseEvent.CLICK, fl_ClickToHide_2);
 
function fl_ClickToHide_2(event:MouseEvent):void
{
 movieClip_2.visible = false;
}
 
movieClip_3.addEventListener(MouseEvent.CLICK, fl_ClickToHide_3);
 
function fl_ClickToHide_3(event:MouseEvent):void
{
 movieClip_3.visible = false;
}
 
movieClip_4.addEventListener(MouseEvent.CLICK, fl_ClickToHide_4);
 
function fl_ClickToHide_4(event:MouseEvent):void
{
 movieClip_4.visible = false;
}
movieClip_5.addEventListener(MouseEvent.CLICK, fl_ClickToHide_5);  
 
function fl_ClickToHide_4(event:MouseEvent):void  
{  
 movieClip_5.visible = false;  
}  
 
Tout cela est dans mon image1 de ma scène1
ensuite je voudrais donc aller à l'image2 ou rendre un bouton cliquable quand mon joueur à cliqué et donc fait disparaître de l'image ses 4 cartes.
 
C'est là que je bloque... :??:  
 
 
:??: :??:


Message édité par kenyg le 11-02-2015 à 17:08:25
n°2250627
gustave002
Posté le 11-02-2015 à 17:45:57  profilanswer
 

je dis que c'est du debutant.
ok
donc  en tant que débutant et qu'il faut passer par la pour apprendre.
 
tu peux mettre ton bouton sur la scène.
 
dans le panneau action tu met
 
bouton.visible = false; // comme ça au démarrage on le voit pas.
 
var Ncarte:uint; // je déclare la variable que j'ai appelé  Ncarte est qui est un uint ( nombre sans virgule et toujours positif);
déclarer une variable veux dire que l'ordi va créer un case mémoire qui va nommé Ncarte et qui pourra contenir un uint.
 
apres je garde ton code comme début
 
movie_Clip.addEventListener(MouseEvent.CLICK, fl_ClickToHide);// la je pense que t'as une erreur pour le 1 je te laisse trouver
 
function fl_ClickToHide(event:MouseEvent):void
{
 movieClip_1.visible = false;
 carte++;                                          trace (carte);
}  
 
voila pour l'instant met en place et regarde déja si tu vois le trace

n°2250634
kenyg
Posté le 11-02-2015 à 19:48:27  profilanswer
 

Je viens de faire le test, malheureusement dès que je met le bouton sur la scène, que j'inscris  
bouton.visible = false;
je débogue:
Séquence 1, Calque 'Actions', Image 1, ligne 3, colonne 8 1119 : Accès à la propriété visible peut-être non définie, via la référence de type static Class.
 
Ensuite
 
j'ai mon code dont j'ai corrigé l'erreur 1 comme tu m'avais dit, donc j'ai bien mes 5 cartes qui disparaissent de la scène quand je clique dedans et rien de plus.
 
Le code complet avec tes conseils me renvoie
stop();
 
bouton.visible = false;
 
var Ncarte:uint
function fl_ClickToHide(event:MouseEvent):void  
{  
 movieClip_1.visible = false;  
 carte++;                                          trace (carte);  
}  
 
movieClip_3.addEventListener(MouseEvent.CLICK, fl_ClickToHide_4);
 
function fl_ClickToHide_4(event:MouseEvent):void
{
 movieClip_3.visible = false;
}
 
 
 
movieClip_4.addEventListener(MouseEvent.CLICK, fl_ClickToHide_5);
 
function fl_ClickToHide_5(event:MouseEvent):void
{
 movieClip_4.visible = false;
}
 
 
 
movieClip_6.addEventListener(MouseEvent.CLICK, fl_ClickToHide_7);
 
function fl_ClickToHide_7(event:MouseEvent):void
{
 movieClip_6.visible = false;
}
 
 
 
movieClip_7.addEventListener(MouseEvent.CLICK, fl_ClickToHide_8);
 
function fl_ClickToHide_8(event:MouseEvent):void
{
 movieClip_7.visible = false;
}
 
 
 
movieClip_8.addEventListener(MouseEvent.CLICK, fl_ClickToHide_9);
 
function fl_ClickToHide_9(event:MouseEvent):void
{
 movieClip_8.visible = false;
}
 
Séquence 1, Calque 'Actions', Image 1, ligne 8, colonne 2 1120 : Accès à la propriété non définie movieClip_1.
 
Séquence 1, Calque 'Actions', Image 1, ligne 9, colonne 2 1120 : Accès à la propriété non définie carte.
 
Séquence 1, Calque 'Actions', Image 1, ligne 9, colonne 59 1120 : Accès à la propriété non définie carte.
 
 
Pour mon test mes cartes se nomment Carte1 avec pour nom de Classe Symbole1 et ainsi de suite jusqu'à Carte5
 
 
Du coup, plutôt que mettre trace pour le bouton, ce serait pas mieux de mettre addChild à la quatrième carte cliquée?
Comme ça, j'arrive sur ma scène, je choisit mes 4 cartes et quand le bouton apparaît je peux cliquer dessus pour me rendre à la scène suivante?
 
:)
 
Je sais, c'est une vrai casse-tête!


Message édité par kenyg le 11-02-2015 à 19:49:27
n°2250635
gustave002
Posté le 11-02-2015 à 20:33:44  profilanswer
 

alors  
il faut toujours faire les choses une a une  
 
tu vires tout ou tu prend un nouveau as3  
 
tu creer un bouton
que tu pose sur la scene,
 dans le panneau propriété tu lui donne son nom  bouton  
puis dans le panneau action  
bouton.visible =  false;
 
et tu me dis si tu t est arrivé.
@+ gustave02

n°2250649
kenyg
Posté le 11-02-2015 à 23:12:03  profilanswer
 

ça marche c'est fou!
Je viens d'apprendre que le nom d'occurrence est très important dans flash. Du coup mon bouton je l'ai appelé Pop. Parce que flash n'aimait pas le mot "bouton".
 
Déjà un grand Merci a toi!
:)

n°2250657
gustave002
Posté le 12-02-2015 à 08:48:54  profilanswer
 

bien  
un object pour être reconnu doit toujours être nommé.
 
tu dis et je ne suis pas d'accord      "Du coup mon bouton je l'ai appelé Pop. Parce que flash n'aimait pas le mot "bouton"."
flash aime le mot bouton. flash parle pas français. de plus par convention le nom des objet doivent être en minuscule. c'est une convention on respect ou pas.moi je respect car par convention les noms de classe (que tu comprendras plus tard) commence par une majuscule.  
 
je pense qu' un exercice te serais bénéfique.
 
on reprend  
j' ai sur ma scène  un objet que j'ai nommé bouton et que je rend invisible
 
je vais dans la bibliothèque  je sélectionne le même objet je fais un glisser déposer de l'objet sur la scène
résultat j'ai deux objet sur la scene  le premier je l'avais nomé bouton  
je clic sur le deuxième et je l'appel   "bouton1"
 
met ce code dans la fenêtre action
 

Code :
  1. import flash.events.MouseEvent;
  2. bouton.visible = false;
  3. bouton.addEventListener(MouseEvent.CLICK, effaceBouton);
  4. bouton1.addEventListener(MouseEvent.CLICK, effaceBouton1);
  5. function effaceBouton(event:MouseEvent):void{
  6. bouton.visible =false;
  7. bouton1.visible = true;
  8. }
  9. function effaceBouton1(event:MouseEvent):void{
  10. bouton1.visible =false;
  11. bouton.visible = true;
  12. }


 
fait cet essais. dis moi quand tu es ok pour la suite?
@+gustave02

mood
Publicité
Posté le 12-02-2015 à 08:48:54  profilanswer
 

n°2250678
kenyg
Posté le 12-02-2015 à 11:13:27  profilanswer
 

Eh bien ça marche parfaitement!!
 
Par contre c'est bizarre, flash n'aime toujours pas le mot "bouton" dans son nom dans les propriétés...
Mais bon, là, tout fonctionne.
 
:)

n°2250685
gustave002
Posté le 12-02-2015 à 11:47:18  profilanswer
 

ok
tu as vu que avec un objet de la bibliothèque tu peux avoir plusieurs copie de cet objet sur la scène.
 
donc tu peux viré le bouton1 les écouteurs et les fonctions dans le panneau action  
il te reste bouton et le code  bouton.visible = false;
 
comme tes cartes sont retourné pas besoin encore de créer 32 moviClip mais un seul le dos de la carte et de le mettre 32 fois sur la scene  et il faut leur donné un nom.  
exemple carte1 et carte2 et .....
 
ok dés que tu as fait tu dis
@+ gustave02

n°2250688
kenyg
Posté le 12-02-2015 à 11:58:22  profilanswer
 

C'est fait aussi et c'est vrai que c'est plus simple comme ça, j'aurais dû y penser.
 
 
Comme cela c'est aussi beaucoup plus clair!
 
 
 :)


Message édité par kenyg le 12-02-2015 à 12:00:48
n°2250691
gustave002
Posté le 12-02-2015 à 12:20:10  profilanswer
 

donc  
 
il faut mette un ecouteur a chaque carte  tu sais faire?
 
oui?

n°2250692
kenyg
Posté le 12-02-2015 à 12:23:44  profilanswer
 

tu veux dire:
 
 carte1.addEventListener (mouseEvent.CLICK, effaceBouton)
 
par exemple?

n°2250694
gustave002
Posté le 12-02-2015 à 12:30:01  profilanswer
 

oui  
bien sur toute les carte

n°2250696
kenyg
Posté le 12-02-2015 à 12:57:39  profilanswer
 

Là c'est fait,
 
J'ai bien sûr un message d'erreur 1120 mais c'est parce que nous n'avons pas encore défini l'accès aux propriétés si j'ai bien compris.
 

n°2250697
gustave002
Posté le 12-02-2015 à 13:02:17  profilanswer
 

envois  
ton code s'il te plait
@+ gustave02

n°2250699
kenyg
Posté le 12-02-2015 à 13:13:37  profilanswer
 

bouton.visible = false;
 
import flash.events.MouseEvent
function effaceBouton(event:MouseEvent):void{
 carte1.visible = false;
 }
 
carte1.addEventListener (mouseEvent.CLICK, effaceBouton);
 
 
J'ai cru bon d'ajouter les lignes import et fonction pour gagner du temps...


Message édité par kenyg le 12-02-2015 à 13:15:54
n°2250708
gustave002
Posté le 12-02-2015 à 13:57:52  profilanswer
 

ok  
va voir tes messages privé
@+


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  Faire apparaître un Bouton Seulement en fin de scène

 

Sujets relatifs
création d'un bouton parcourircréation d'un bouton parcourir
bouton de redirection en fonction du loginFaire apparaitre les valeurs de la liste d'un combo/text box directeme
Une sélection de cellule en fonction de la position d'un bouton..Récupérer le numéro de la case contenant le bouton
Bouton réponse automatique d'email sur powerpoint[Excel] Afficher un bouton sous condition : Résolu
Comment modifier la fonction d'un boutonSoucis bouton "précedent" du navigateur et ancre de lien
Plus de sujets relatifs à : Faire apparaître un Bouton Seulement en fin de scène


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR