Forums Développement Multimédia

Aller au contenu

Contenu de Gouj

Il y a 26 élément(s) pour Gouj (recherche limitée depuis 19-August 18)


Filtrer par type de contenu

Voir pour ce membre

#1160327 Recherche dans un Array SI la variable existe

Posté par Gouj sur 04 July 2013 - 20:10 PM in Développement Actionscript

:jesors: ... je me sens un peu idiot sur ce coup !

mais bon c'est pas perdu je repars sur des bases plus saines.

Merci M. Spi et Benzouye pour votre aide et vos conseil.

Je vais me pencher sur cette méthode qui m'a l'air beaucoup moins lourde :)

Merci encore

Bonne soirée



#1160319 Recherche dans un Array SI la variable existe

Posté par Gouj sur 04 July 2013 - 17:09 PM in Développement Actionscript

Bonjour à tous!

Je viens vers vous car après de nombreuses recherches sur http://livedocs.adobe.com et autre, ... je ne comprend pas pourquoi cela ne fonctionne pas !

Ma situation :

Mon objectif est de réaliser un tirage au sort ou chaque données ne peut être tiré qu'une seule foi, pour cela :
  • J'ai un premier tableau avec des données "marqueArray"
  • J'ai un tableau "doneArray" vierge qui est la pour servir de "disquette de sauvegarde" ^^
  • J'ai une fonction "tirage()" qui me sort un numéro aléatoire stocké dans la variable "id_aleatoire"
  • J'ai ensuite une fonction sur un bouton pour lancer le tirage au sort ... voici le code de cette fonction :

function tirage_marque(){
tirage(); //1ere tirage

//test si la question a déja été posé
if (doneArray.indexOf(marqueArray[id_aleatoire] == -1 )){

trace("c'est bon")
trace("la marque tiré : " + marqueArray[id_aleatoire])
//Enregistre la question pour ne pas la reposer
doneArray.push(marqueArray[id_aleatoire])
trace("les marques déja tiré : " +doneArray)
}

else {
trace("c'est pas bon")
//relance le tirage

}
  }
 

Mon problème :

bah littéralement ça ne marche pas car voila la sortie de mon tracking :


c'est bon
la marque tiré : Marque A
les marques déja tiré : Marque A
c'
est bon
la marque tiré : Marque C
les marques déja tiré : Marque A,Marque C
c'est bon
la marque tiré : Marque B
les marques déja tiré : Marque A,Marque C,Marque B
c'
est bon
la marque tiré : Marque B
les marques déja tiré : Marque A,Marque C,Marque B,Marque B
c'est bon
la marque tiré : Marque C
les marques déja tiré : Marque A,Marque C,Marque B,Marque B,Marque C
c'
est bon
la marque tiré : Marque B
les marques déja tiré : Marque A,Marque C,Marque B,Marque B,Marque C,Marque B
c'est bon
la marque tiré : Marque B
les marques déja tiré : Marque A,Marque C,Marque B,Marque B,Marque C,Marque B,Marque B

sachant que j'ai 3 marque distinct dans mon tableau de donnée je devrait pouvoir faire que 3 tirages avec les résultat "c'est bon" puis après les reste me donnerait "c'est pas bon"...

et je ne comprend pas pourquoi

Merci d'avance amis médiaboxeur !

bonne soirée :D



#1160262 [b]Besoin d'aide : récupérer variable & Array d'un clip à l'a...

Posté par Gouj sur 02 July 2013 - 16:36 PM in Développement Actionscript

bon j'ai trouvé une solution au lieu de passer en "lecture" je passe en "envoi" et ça marche :

ma solution au lieu que dans mon clip quizz j'ai mon Array qui va chercher les valeur de mon Array correction

c'est l'inverse le clip correction envoi ces valeurs vers Array quizz ...

un simple MovieClip(parent) Et cela fonctionne au poil !

Merci pour vos réponses



#1160254 [b]Besoin d'aide : récupérer variable & Array d'un clip à l'a...

Posté par Gouj sur 02 July 2013 - 15:44 PM in Développement Actionscript

Si tu as bien compris le clip "correction" est dans le clip "quizz"

j'avais déjà essayé sous cette forme :

trace(correction.correc_xArray) ;
trace(correction.correc_yArray) ;
 


en sortie j'ai : "erreur accès à une propriété non définie correction" ...

j'ai tester plusieurs forme (dont celle avec MovieClip(root) car je me suis dit on en sais jamais ...) mais cela reste sans résultat concluant ...

normalement dans mes autre projet j'utilisai


MovieClip(parent).correc_xArray
 



mais là cela ne fonctionne pas ...



#1160245 [b]Besoin d'aide : récupérer variable & Array d'un clip à l'a...

Posté par Gouj sur 02 July 2013 - 14:58 PM in Développement Actionscript

Bonjour à tous,

Je suis actuellement sur un projet de quizz type drag & drop et je me retrouve face à un petit problème que je n'arrive pas à résoudre...
  • La situation
dans mon clip principale (quizz) J'ai une grille avec des zones de réponse, des logos à placer sur la bonne zone , ... tout fonctionne nichel chrome !

j'ai également un bouton "correction" qui permet d'afficher un autre clip où sont rangé au bon endroit mes logos (lors de l'affichage de se clip les logos "dragables" se cachent)

mais pour finaliser ce projet je doit créer un bouton "vérifier" qui (si le logo est dans la bonne zone) aura pour action de le placé à la même position que celle du même logo de la correction ( pour éviter les mouvements bizarre et rapide lors de l'affichage de la correction) et c'est la que ça coince (à moitier :D)
  • Le problème
Dans mon clip "correction" j'ai 2 liste/tableau de données Array qui récupère l'intégralité des valeurs x et y de mes logos :


var correc_xArray:Array = [logo_1.x, logo_2.x, logo_3.x, logo_4.x, .... ];
var correc_yArray:Array = [logo_1.y, logo_2.y, logo_3.y, logo_4.y, ....];
 

Ces données sont indispensables car elles vont me permettre de faire une boucle for et de matcher ma position avec celle de la correction si elle est sur la bonne zone...

quand je trace dans mon clip correction mes 2 array j'obtient bien une suite de nombre pour mes x et mes y ! donc tout va bien ...

sauf que pour faire "matcher" la chose je dois récupérer ces valeur de mon clip "correction" à mon clip "quizz" ... et la c'est un problème !

j'ai essayé dans mon clip quizz un :

trace(MovieClip(root).correc_xArray) ;
trace(MovieClip(root).correc_yArray) ;
 
mais aussi :

trace(MovieClip(parent).correc_xArray) ;
trace(MovieClip(parent).correc_yArray) ;
 
ou encore :

trace(parent.correc_xArray) ;
trace(parent.correc_yArray) ;
 
....

mais le module de sortie me sort soit "undifined" ou "null"

Avez vous une solution pour que je récupère ces valeurs ?



a terme ma boucle for ressemblera à ça (si je trouve le moyen de faire le transfert d'un clip à l'autre)


for(var i:int = 0; i < dragArray.length; i++) {
if(dragArray[i].hitTestObject(matchArray[i])==true)
{
//match was made, so send the clip to the correct position

dragArray[i].x = MovieClip(parent).correc_xArray[i];//avec la correction qui fonctionne
dragArray[i].y = MovieClip(parent).correc_yArray[i];//avec la correction qui fonctionne
}

else {
//match was not made, so send the clip back where it started:
dragArray[i].x = xArray[i];
dragArray[i].y = yArray[i];
}
}

 


Voili voilou, ... J'espère que vous pourrez m'aider.



Merci d'avance ! et Bonne fin de journée à tous !



#1159399 impossible d'accéder à la propriété ou à la méthode d'une référence d...

Posté par Gouj sur 29 May 2013 - 10:17 AM in Développement Actionscript

bon J'ai bidouiller en m'inspirant de ton post paodao,

j'ai ajouter une image avant avec mon objet sur le coter de ma scene puis j'ai ajouter une interpolation pour le replacer au bon endroit au bon moment ... pas très propre ... MAIS

CA FONCTIONNE !

donc on peut dire pb résolu ...

Merci encore à tous



#1159398 impossible d'accéder à la propriété ou à la méthode d'une référence d...

Posté par Gouj sur 29 May 2013 - 10:11 AM in Développement Actionscript

Merci pour vos réponses,

j'ai testé la boucle pour attendre que l'objet soit créer mais il me sort :

Error: Error #1023: Il s'est produit un débordement de pile.


et mon lancer_des1 est toujours "null" ...

le truc étrange c'est que mon clip lancer_dès1 est bien présent sur ma scene lors de mon export (swf) :

- lors de mon test, quand j'arrive à la frame en question j'ai mon clip visible et il fonctionne (car quand si je clic sur son bouton "lancer" il me sort un num aléatoire puis reprend le cours du "jeu" en réalisant les calcul nécessaire sur le budget et les ventes)

Le pb étant que ce clip ne doit pas être visible dès le début mais après que l'utilisateur est cliqué sur la réponse qui nécessite un lancer de dès ... et la je sèche !



#1159394 impossible d'accéder à la propriété ou à la méthode d'une référence d...

Posté par Gouj sur 29 May 2013 - 09:20 AM in Développement Actionscript

Bonjour dldler,

merci pour ta réponse rapide

j'ai tracé mon "lancer_des1" et en effet il me sort "null" ...

Pour info je n'ai pas d'animation ni sur ni dans le clip "lancer_des1".

comment puis-je faire pour que flash reconnaisse ce clip ?

merci d'avance,

Comment puis-je faire pour que



#1159392 impossible d'accéder à la propriété ou à la méthode d'une référence d...

Posté par Gouj sur 29 May 2013 - 08:30 AM in Développement Actionscript

Bonjour à tous, je solicite votre aide après mettre arraché les cheveux depuis 2 jours sur un bug ...

j'ai animé un petit jeu (de base sur power point) en flash afin de prendre en compte les "vente" & "budget".

Le principe l'utilisateur à plusieurs choix en fonction des situations qui lui sont présentées et en fonction de ces réponses cela impact son budget et ses ventes ...

le fla est une continuité d'image avec sur chacune d'elle un code bien précis qui correspond à l'action en fonction de la réponse

j'ai fait une première version qui marche très bien puis pour rendre le jeu plus sympa j'ai rajouté des qq animation ... et la problème ça marche plus !

en sortie j'ai :

TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.

at Kronopoly3_fla::MainTimeline/frame21()

at flash.display::Sprite/constructChildren()

at flash.display::Sprite()

at flash.display::MovieClip()

at des1()

at flash.display::MovieClip/nextFrame()

at Kronopoly3_fla::MainTimeline/fl_ClickToGoToNextFrame()



J'ai tracé l'erreur ... mon "objet nul" c'est un clip bien présent sur ma scene dont l'occurrence est "lancer_des1" je ne comprend donc pas pourquoi il est "objet nul"

surtout que le code qui fait bugger le truc c'est un simple "lancer_des1.visible=false" ....

Pouvez-vous m'aider ?

merci d'avance !

bonne journée



#1159061 Conversion contenu d'une variable String en contenu de tableau ✔

Posté par Gouj sur 15 May 2013 - 10:22 AM in Développement Actionscript

Merci pour ta validation

Encore merci pour votre aide !

bonne journée



#1159055 Conversion contenu d'une variable String en contenu de tableau ✔

Posté par Gouj sur 15 May 2013 - 08:38 AM in Développement Actionscript

En effet la fonction de clic pour renvoyer vers un lien n'était pas trop dure à trouver : event.target.selectedItem


voici le code :

//au clic renvoi vers l'url
          dg.addEventListener(Event.CHANGE, link_to_url)
          function link_to_url (event:Event){
         
           trace(event.target.selectedItem.link_url);
           navigateToURL(new URLRequest(event.target.selectedItem.link_url), "_blank");
         
          }
 

cela fonctionne masi ai-je la bonne solution ? sourtout pour l'event, CHANGE ??

Bonne journée à vous !



#1159027 Conversion contenu d'une variable String en contenu de tableau ✔

Posté par Gouj sur 14 May 2013 - 17:21 PM in Développement Actionscript

Ok je me renseigne et je reviens vers toi si besoin,

je n'avais pas encore chercher pour cette question ...

j'ai tenté le raccourci ^^

Encore merci bonne soirée



#1159021 Conversion contenu d'une variable String en contenu de tableau ✔

Posté par Gouj sur 14 May 2013 - 17:00 PM in Développement Actionscript

Merci dldler,

Mais comment je "retrouves l'indice cliqué et utilises l'url fournie par le dataProvider…" ?????



#1159008 Conversion contenu d'une variable String en contenu de tableau ✔

Posté par Gouj sur 14 May 2013 - 16:00 PM in Développement Actionscript

Merci pour ces infos,

en gros la conversion dont j'ai besoin est réalisable grace à une boucle à "double split" (pour synthétiser)

mais j'ai une petite question car je suis sur le principe d'un petit moteur de recherche :

- si l'utilisateur lance sa première recherche : no problème, les résultats vont s'afficher les uns en dessous des autres puis quand l'utilisateur va relancer une recherche avec additem les nouveaux résultat vont s'afficher en dessous des résultat précédent non ?

je suppose dans ce cas,qu'avant de lancer mon process de recherche dans mon xml je doit faire un

dp.removeAll()
? ou ce n'est pas la bonne solution ?


Autre interrogation pour la suite de mon projet :

- pour finaliser le petit moteur de recherche je souhaiterai que lorsque l'utilisateur clique sur une "réponse à sa recherche" cela ouvre la page internet concerné :

imaginons que mon tableau est 3 colonnes(ID,Nom,url) dont seulement 2 visibles(ID, Nom)

ma variable string aurai donc cette tronche : 2,TEST2,http://test2.fr|4,TEST4,http://test4.fr|5,TEST5http://test5.fr|6,TEST6,http://test6.fr

comment puis-je faire cela ??

Et encore merci pour vos réponses :D



#1158996 Conversion contenu d'une variable String en contenu de tableau ✔

Posté par Gouj sur 14 May 2013 - 13:53 PM in Développement Actionscript

Bonjour à vous amis développeurs Mediaboxeurs !

Je viens vers vous car je recherche désespérément une solution à mon problème ...

En gros : je cherche à remplir une datagrid avec un tableau rempli grâce à une variable string (généré par un "moteur de recherche maison" dans lequel j'ajoute les "{" nécessaire à la mise en forme du tableau) mais cela ne marche par comme je souhaiterai...

le resultat de mon "moteur de recherche" me donne une variable string en séparant et encadrant les réponses par "{}" et","...

Pour résumer j'ai une boucle qui créer une liste (dans une fonction search) :


aList.push("{"+"ID:\""+ node.@id.toString()+"\"","Nom:\""+ node.@nom.toString()+"\"}" );
 

En suite, je récupère le résultat dans une variable que j'insère dans un tableau qui renseigne la datagrid:


//récupère le résultat de la recherche et le stock dans la variable
var contenu_tableau = search(xmlData, mots_cherche).toString();

//création d'un tableau pour afficher le réulstat dans la datagrid(myDG)
var tableau_result:Array = new Array();
tableau_result = [contenu_tableau];


// Affichage dans DATAGRID
myDG.dataProvider=new DataProvider(tableau_result);
 

Quand je trace ma variable (contenu_tableau) donne le résultat suivant :
{ID:"2",Nom:"TEST2"},{ID:"4",Nom:"TEST4"},{ID:"5",Nom:"TEST5"},{ID:"6",Nom:"TEST6"}

le Problème c'est que ma datagrid affiche qu'une cellule contenant le text ci dessus avec les "{" ... alors que j'aimerai avoir une mise en forme sur plusieurs lignes et colonnes ex :


import fl.data.DataProvider;
// TEST CRéation du résultat de la recherche en forme
var tableau_result:Array = new Array();
tableau_result = [{ID:"2",Nom:"TEST2"},{ID:"4",Nom:"TEST4"},{ID:"5",Nom:"TEST5"},{ID:"6",Nom:"TEST6"}];
myDG.dataProvider=new DataProvider(tableau_result);
 


Je pense que le problème viens du fait que ma variable est une chaine de caractères mais je n'arrive pas à trouver le moyen pour la convertir en "code exploitable"

pour info j'ai testé .split() cela divise effectivement ma chaine mais ne créé pas des lignes avec 2 colonnes ... j'ai également trouver un forum où des personnes parlaient de "as array" mais j'ai pas réussi à l'utiliser...

Si quelqu'un peut m'aider dans cette "conversion"...


Merci d'avance :D!



#1158730 Gérer la vitesse de défilement d'un texte qui s'écrit lettre par lettre

Posté par Gouj sur 29 April 2013 - 12:33 PM in Développement Actionscript

Bonjour,

je reviens vers vous car j'ai encore un petit souci :

J'ai ajusté le défilement avec la classe "timer" (une vitesse de 42 milliseconde)

- Quand je test mon anim sur mon flash player de debug (avec ctrl+enter) le défilement est synchro avec la voix ...

- je test donc mon anim sur mon serveur puis sur un ordi avec IE et la c'est, problème, plus synchro ( le texte défile trop lentement ) sur la première lecture, en revanche si je relance la lecture elle est de nouveau synchro...

j'ai l'impression que lors de la première lecture le timer est plus lent ... alors que rien dans mon AS3 ne lui donne cet "ordre".



stop();

zone_karl.removeEventListener(MouseEvent.MOUSE_OVER, fl_MouseOverHandler);


//Fonction texte ecrit lettre par lettre \n\n
var texte0 = "Lors de la saisie de vos informations : \n\nEcrivez en MAJUSCULE, ............."
var blancs = "                  ";
texte0 += blancs;
var longueur = texte0.length;
var n = 0;



bouche_anim.visible=false;
//bouche_anim.play()

var timer:Timer = new Timer(42);

timer.addEventListener(TimerEvent.TIMER, ecriretxt1);
timer.start();



function ecriretxt1( e:TimerEvent):void
        {      
                                        son.play();
                                        bouche_anim.play()
                                        bouche_anim.visible=true;
                                        smile.visible=false;
                                       
                                        if(n != longueur) {
                                                var texte1 = texte0.substr(0, n)
                                                affichage.text = texte1;
                                                n++;
                                       
                                        }
                                        //lire en boucle
                                        //else {n = 0;}
                               
                                        //A la fin  stop l'anim bouche
                                        else {
                                                        bouche_anim.visible=false;
                                                        smile.visible=true;
                                                        son.stop();
                                                       
                                                        bouche_anim.stop();
                                                       
                                                        timer.stop();
                                                        gotoAndStop(1);
                                        }
               
        }
       
       
 



Si vous pouvez m'aider à comprendre d'où proviens ce problème sur la première lecture ...

Merci d'avance



#1158703 Gérer la vitesse de défilement d'un texte qui s'écrit lettre par lettre

Posté par Gouj sur 27 April 2013 - 23:43 PM in Développement Actionscript

Merci beaucoup pour tes conseils çayjb !

le texte est plus lent avec la classe Timer

et Krevare pour ton lien "lipsync"

bonne soirée (et/ou nuit)



#1158670 Gérer la vitesse de défilement d'un texte qui s'écrit lettre par lettre

Posté par Gouj sur 26 April 2013 - 16:44 PM in Développement Actionscript

Bonjour,

Je souhaiterai un coup de main sur un autre de mes projets ... ne trouvant pas de solution qui marche je viens vers vous ^^...

bon voila c'est une sorte d'info bulle avec un petit bonhomme qui parle pour expliquer qqch ...

donc en faite j'ai mon petit bonhomme avec sa bouche (bouche_anim) qui est animée .... et le texte qui s'écrit lettre par lettre à coté ...

quand le texte a fini de s'écrire la bouche arrête de s'animer et redevient un "smile"

Mais maintenant on me demande de calé du son dessus ... le problème c'est que mon texte défile trop vite ... donc : le texte est fini, la bouche du bonhomme s'arrête mais la voix continu ...

l'affiche des lettre se fait par un enter_frame...(seul solution que j'ai réussi à faire marché :roll:/&gt;

Je souhaiterai donc savoir comment créer un delay entre chaque lettre ... pour retarder l'ensemble ... et que le son + le texte + la bouche soient synchro ....

ou une autre solution pour tout synchro

l'idéal serait d'avoir une variable qui me permettrait d'ajuster le timing (car j'ai plusieur info bulle ^^)


Voilà mon code :


//Fonction texte ecrit lettre par lettre \n\n
var texte0 = "Lors de la saisie de vos informations : ..... et il y a le reste de mon texte je vous l'épargne"


var blancs = "           ";
texte0 += blancs;
var longueur = texte0.length;
var n = 0;
/*var slow_timer;*/
bouche_anim.visible=false;



function ecriretxt1( e:Event ):void
{
ecrire();
function ecrire()
{ bouche_anim.visible=true;
bouche_anim.play();
smile.visible=false;
if(n != longueur) {
var texte1 = texte0.substr(0, n)
affichage.text = texte1;
n++;
/*//test ralentissement
slow_timer = setTimeout(slow,5000);
slow();
function slow () {
//nothing
3+6
}*/



}
//lire en boucle
//else {n = 0;}

//A la fin  stop l'anim bouche
else {bouche_anim.stop()
bouche_anim.visible=false;
smile.visible=true;}
}
}
stage.addEventListener(Event.ENTER_FRAME, ecriretxt1 );

 


Pour info j'ai testé setTimeout ... mais ça marche pas ...

Merci d'avance,

Bonne fin de journée



#1158660 Sauvegarde d'une variable score et d'une variable ID en PHP

Posté par Gouj sur 26 April 2013 - 12:26 PM in Développement Actionscript

Merci aussi Nataly pour tes conseils

Je vous tiendrais qu courant de mes avancées ^^

Bonne journée



#1158598 Sauvegarde d'une variable score et d'une variable ID en PHP

Posté par Gouj sur 25 April 2013 - 13:02 PM in Développement Actionscript

Merci pour tes conseils

que veux-tu dire par :

"Il faut qu'il soit sur un serveur web opérationnel."

j'upload le save.php sur mon serveur page perso free avant de commencer ?



#1158594 Sauvegarde d'une variable score et d'une variable ID en PHP

Posté par Gouj sur 25 April 2013 - 10:41 AM in Développement Actionscript

bonjour,

je solicite l'aide de cette merveilleuse communaute car je n'arrive pas à trouver de réponses pertinentes à mes questions ...

Je suis sur un projet de création d'un "jeu" pour simplifier. Je suis donc en train de me renseigner sur les méthodes que je vais utiliser avant de me lancer dans le projet réel... en gros je fait des test ^^

Pour info : Je travail avec flash en AS3

La "situation" :

Pour faire mes test j'ai créer un petit programme de test avec 2 boutons (+1point & "save") et un texte dynamique ou s'affiche mon score et un champ de saisie de texte pour entrer l'id

j'ai 2 variables : une "score" et une "id"

L'utilisateur au début rentre son ID ... cela enregistre une petite variable "id" puis quand il répond cela lui ajoute des points (la variable "score") !

pour le moment nos souci je trace mes variable et tout va bien :D

voici mon code (pour mon test)


//mes variables
var score = "0";
var id =""

//ma fonction ajout de point
function add_point(){
score++;
score_txt.text=score.toString();
//refresh id
id = id_txt.text
//tracking
trace("id  :  "+id+"      "+ "score : " + score)
}

//bouton +1point
youhou_btn.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);

function fl_MouseClickHandler(event:MouseEvent):void
{
add_point();

}


//bouton Sauvegarde
save_btn.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_2);

function fl_MouseClickHandler_2(event:MouseEvent):void
{
//faire une sauvegarde sur le fichier save.php

}
 


Mes questions :

Littéralement je souhaiterai :

- créer un sauvegarde du score et de l'id (en local dans un premier temps puis en ligne(sur mon serveur page perso free par ex) l'idéal serai de faire les 2 en même temps ou de laisser le choix à l'utilisateur ...

- récupérer ces données dans mon appli afin de faire un tableau des scores (classé par odre)

Donc en gros ma question c'est COMMENT FAIRE ?

pour cela j'ai créer une page php (save.php)

j'aimerai bien trouver une solution et la tester avant de me lancer dans le codage de la vrai appli ... mais pour l'instant aucun de mes test n'a été concluant et mes recherche sur internet ne m'aide pas plus que ça ...


Voili voilou ... j'espère que vous pourrez m'aider ^^


Merci d'avance !

bonne journée,



#1157998 Besoin d'aide : récupérer une variable pour un calcul dans un clip ✔

Posté par Gouj sur 04 April 2013 - 12:21 PM in Développement Actionscript

En effet :roll: ...

ça marche !

Merci beaucoup pour ces réponses rapides et efficaces !

et pour ton "astuce" pour les nombre pair/impair !


Bonne journée



#1157994 Besoin d'aide : récupérer une variable pour un calcul dans un clip ✔

Posté par Gouj sur 04 April 2013 - 11:13 AM in Développement Actionscript

Merci pour ta réponse, mais cela ne fonctionne pas j'ai 2 messages d'erreurs :

Symbole 'dès1', Calque 'Actions', Image 1, ligne 12 1067: Contrainte implicite d'une valeur du type Number vers un type sans rapport Class.

et

Symbole 'dès1', Calque 'Actions', Image 1, ligne 12 1188: Affectation à la classe Number incorrecte.

la ligne 12 c'est la ligne

VA1:Number = Math.round(Math.random()*(valeur_MAX-valeur_MIN+1)+(valeur_MIN-.5));



#1157990 Besoin d'aide : récupérer une variable pour un calcul dans un clip ✔

Posté par Gouj sur 04 April 2013 - 10:41 AM in Développement Actionscript

Bonjour, je suis débutant et je viens demander votre aide afin de résoudre mon petit "problème".

Je rencontre actuellement un problème sur mes variables et je sollicite votre aide afin de résoudre se soucis qui me bloque depuis quelques jours...

Le contexte :

Je suis dans la création avec Flash en AS3 d'un jeu de simulation de gestion de budget durant une année. L'utilisateur a donc un budget et un nombre de ventes réalisées et étapes par étapes des situations sont proposées avec des impacts différents sur le budget et les ventes en fonction de choix effectué par l'utilisateur.

J'ai donc d'aclaré mes variables budget et hl (pour les ventes) sur ma première frame avec le montant de base de chacune :

// déclaration des variables budget et hl
var budget  = Number(270000);
var hl = Number(0) ;

J'ai ensuite des conditions qui impact le budget et/ou les ventes sur chaque frame de situations en fonction de la réponse que l'utilisateur sélectionne :

function condition() {
//si choix 1 selectioner
if ( c1.selected==true && c2.selected==false && c3.selected==false) {
  budget = budget - 70000 ;
  hl = hl - 250 ;
  MAJ_score();
  nextFrame();

}
// si choix 2 selectionner
else if ( c1.selected==false && c2.selected==true && c3.selected==false) {
  budget = budget - 60000 ;
  hl = hl ;
  MAJ_score();
  nextFrame();
}
//si choix 3 selectionner
else if (c1.selected==false && c2.selected==false && c3.selected==true) {
  budget = budget ;
  hl = hl - 250 ;
  MAJ_score();
  nextFrame();
}

Ensuite j'ai une fonction de Mise à jour de mes champs de text dynamique (MAJ_score) pour que l'utilisateur voi en live l'évolution de son budget et de ses ventes :

//Function MAJ des resultats : Affichage des données budget et hl
function MAJ_score () {

budget_txt.text = separateurs_de_milliers(budget) + " €";
hl_txt.text = separateurs_de_milliers(hl) + " hl";
}


Jusqu'ici no soucy ! cela fonction bien, Les calcul sont réalisé correctement fonction du choix de l'utilisateur et les textes dynamique sont mis à jour ! ( je vous épargne les autres codes qui marchent comme la mise en forme conditionnelle du texte, ...)


Le problème :

Mais j'ai des situation ou la chance rentre en jeux (pour mettre un peu de piquant) : quand l'utilisateur choisis une solution cela affiche un clip avec un lancé de dés si le nombre est impair l'utilisateur réussis ca vente et si c'est pair il échoue ...

J'ai donc dans mon clip "dés" un tirage au sort aléatoire avec une nouvelle variable avec le résultat du tirage (VA1) :

var VA1;
lancer_btn.addEventListener(MouseEvent.CLICK, fl_MouseClick);
function fl_MouseClick(event:MouseEvent):void
{ // aléatoire
var valeur_MIN = 1;
var valeur_MAX = 6;
var VA1:Number = Math.round(Math.random()*(valeur_MAX-valeur_MIN+1)+(valeur_MIN-.5));
des_txt.text= VA1.toString() ;

// bouton disparait et autre réaparait
lancer_btn.visible=false;
go_btn.visible=true;
}

Par la suite(toujours dans mon clip "dés") j'ai une condition sur une fonction qui se lance au clic sur le bouton "go_btn"(qui ressemble aux autres avec l'impact en fonction du résultat) :

go_btn.addEventListener(MouseEvent.CLICK, fl_ClickToGoToScene);
function fl_ClickToGoToScene(event:MouseEvent):void
{
  // condition de résultat
if (VA1 == 1 || VA1 == 3 || VA1 == 5) {
  MovieClip(parent).budget = MovieClip(parent).budget ;
  MovieClip(parent).hl = MovieClip(parent).hl - 350  ;
  MovieClip(parent).MAJ_score();
}

else if (VA1 == 2 || VA1 == 4 || VA1 == 6) {
  MovieClip(parent).budget = MovieClip(parent).budget - 75000 ;
  MovieClip(parent).hl = MovieClip(parent).hl   ;
  MovieClip(parent).MAJ_score();
}


MovieClip(this.root).gotoAndPlay(22, "Séquence 1");
}

MAIS CELA NE MARCHE PAS ! enfin la fonction marche car quand je clic sur le bouton j'arrive bien frame 22 de ma séquence 1 mais le budget et les ventes ne change pas...

DE bases mon code était le même que pour les conditions sur ma séquence principal mais lors de la publication on me disais que les variable n'étaient pas définies ... J'ai passé plusieurs heures sur internet à cherché la solution (j'ai trouvé le principe de "MovieClip(parent).Ma_variable") mais cela ne fonctionne toujours pas ... comme si il ne retrouvai pas la variable "budget" et "hl" pour y soustraire les montants....

J'ai également testé avec "MovieClip(this.root).Ma_variable" mais c'est pareil cela ne fonctionne pas ...


Voili Voilou, J'espère avoir été clair dans mon explication :)

J'espère que vous pourrez m'aider (pauvre débutant que je suis) à "débugger" ce "jeu" ...

Merci d'avance ;)

Bonne journée,



#1157582 Besoin d'aide : Conditions if avec variable String

Posté par Gouj sur 22 March 2013 - 13:40 PM in Développement Actionscript

Merci Beaucoup pour ton explication aussi claire que de l'eau de roche ;) et dsl pour le temps réponse (c'était l'heure de la pose Miam Miam :D )!

En effet j'ai recommencer ma conditions avec les () pour bien définir mes priorités et ça marche du feu de dieu ! ( pour ce quizz je ne vais pas tout recommencer mais juste faire les modifs nécessaires pour que cela marche !)

Par contre si tu as le liens d'explication sur la méthode la plus adéquate pour ce genre "d'appli" cela m'interesse beaucoup pour parfaire mes connaissances !

Encore merci Mr dldler !



#1157575 Besoin d'aide : Conditions if avec variable String

Posté par Gouj sur 22 March 2013 - 12:07 PM in Développement Actionscript

Bonjour, je suis débutant et je viens demander votre aide afin de résoudre mon petit "problème".

Je suis actuellement en train de créer un quizz avec flash en AS3 voici le contexte :

J'ai une question avec 10 combobox afin d'y choisir les réponses. Pour chaque question plusieurs réponses sont possible et l'ordre n'est pas important.

Pour réaliser cela j'ai donc donné des valeurs aux item des combobox ( mes bonnes réponses ont donc en "data" des lettres (ex : la 1ere bonne réponse = A , la seconde = B)

J'ai ensuite créer 3 variables afin d'établir des "codes réponse" qui me permettent de faire mes conditions en fonction de ma "correction" (avec les bonnes "combinaisons de codes réponses" :
  • ma 1ere variable (codeP1) reprend les datas de 6 combobox
  • ma 2nd varaible (codeB1) reprend les datas de 4 combobox
  • ma dernière variable (codePB1) fait l'addition des 2 varaibles pour simplifier les conditions dans certain cas
var codeP1 : String = comboboxc1.selectedItem.data + comboboxc2.selectedItem.data +
          comboboxc3.selectedItem.data  + comboboxc4.selectedItem.data  +
          comboboxc5.selectedItem.data + comboboxc6.selectedItem.data ;
var codeB1 : String = combobox1.selectedItem.data+ combobox2.selectedItem.data+
        combobox3.selectedItem.data + combobox4.selectedItem.data;
var codePB1 : String = codeB1+ codeP1;

J'ai ensuite un bouton "valider" avec une fonction au clic de la souris. Dans cette fonction j'ai mis les conditions afin d'afficher le résultat si la réponse fait partie des possibilités de réponses correcte

if (codeB1 != "XXXX" && codeP1 == "PG" || "GP" ){
       
        //donne le résultat
        result_txt.text = "Bravo !";
        explication_txt.text = String("Vous venez de trouver La gamme idéale .");
        gamme_B_txt.text = Correction1_B;
        gamme_P_txt.text = Correction1_P;
        //ajoute 5 points
        Score_compteur++;
}

Pour info la data "X" c'est la valeur du premier élément des combobox ( qui est le "choisir parmi ...") En gros codeB1 différent de "XXXX" signifie que pour avoir bon il faut au moins choisir une reponse par combobox pour les 4 combobox concernées.

Par la suite j'ai des conditions "else if" de correction personnalisée en fonction des types d'erreur :

 else if ( comboboxc1.selectedItem.label == "EAU" || comboboxc2.selectedItem.label == "EAU" ||
   comboboxc3.selectedItem.label == "EAU" || comboboxc4.selectedItem.label == "EAU" ||
   comboboxc5.selectedItem.label == "EAU" || comboboxc6.selectedItem.label == "EAU") {
        //donne le résultat
        result_txt.text = "Echec !";
        explication_txt.text = String("La priorité n'est pas le financement d'eau ! ");
        gamme_B_txt.text = Correction1_B;
        gamme_P_txt.text = Correction1_P;
  }

et une condition "else" pour tout type d'autre erreur :

else {
        //donne le résultat
        result_txt.text = "Echec !";
        explication_txt.text = String("Il y a une erreur dans la gamme choisie ! la gamme recommandée est :");
        gamme_B_txt.text = Correction1_B;
        gamme_P_txt.text = Correction1_P;
  }
 

Voila pour la situation maintenant le Problème :

Ma condition principale (la première qui définie si l'utilisateur à la bonne réponse) ne marche pas et je ne comprends pas pourquoi ... Quand je test mon quizz m^me si je sélectionne rien sur les combobox ou il est impératif de choisir une réponse pour réussir il me dit "bravo"... En gros même si il y a une erreur il sort un "bravo"...

J'ai donc tracé mes variables et je trouve bien le pour codeP1 et codeB1 une valeur qui correspond a la selection dans les combobox (le soucis de viens pas de la)

Je suppose que le problème viens de ma condition car j'ai l'impression qu'aucun test logique n'est fait !

Voili Voilou,

J'espère que vous pourrez m'aider (pauvre débutant que je suis) à "débugger" ce quizz ...

Merci d'avance ;)

Bonne journée