begin process at 2012 05 27 08:00:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

Ecouteur d'évènement


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ecouteur d'évènement

mercredi 10 janvier 2007 à 16:56:47 | Ecouteur d'évènement

cefar

Bonjour tout le monde,

travail en cours :
je développe un quizz dynamique : le fichier xml est généré par un script php qui interroge la base de données des questions.
Le fichier xml comporte 10 questions, et les réponses associées dont le nombre varie.

L'affichage de la question est dans un textArea, le choix des réponses avec des radioButton, et il y a un bouton suivant.

Mon problème est le suivant : l'écouteur des radioButton ne fonctionne pas dans ce programme, alors que le même écouteur dans un simple fla avec quelques radioButton placés manuellement fonctionne parfaitement.

Il existe également un écouteur pour le bouton suivant qui fonctionne également correctement.

Y-aurait-il une âme charitable pour essayer de m'expliquer l'erreur de mon code. (joint ci-dessous)

Merci d'avance

Rudy

import mx.controls.RadioButton;
import mx.controls.TextArea;
import mx.controls.Button;
var score:Number = 0;
var question:Number = 0;
var pointResultat:Number = -1;
// --------------------- Chargement du fichier xml -----------------------------------
var chargeQcm:XML = new XML();
chargeQcm.load("qcm.xml");
chargeQcm.ignoreWhite = true;
chargeQcm.onLoad = function(ok:Boolean):Void {
    if(ok) afficherQuestion();
    else trace("Chargment du fichier xml raté !");
}
// ---------------------- affichage de la question N --------------------------------
function afficherQuestion() {
    // --- affichage de la question
    var tQuestion:TextArea = this.createClassChildAtDepth(TextArea,DepthManager.kTop);
    tQuestion._x = 10;
    tQuestion._y = 10;
    tQuestion._width = 350;
    tquestion._height = 60;
    tQuestion.editable = false;
    tQuestion.html = true;
    tQuestion.wordWrap = true;
    tQuestion.text = "Question-"+(question+1)+". "+chargeQcm.childNodes[0].childNodes[question].attributes.intitule;
    // ---- récupère le nombre de réponse -----------
    var nbNoeud:Number = chargeQcm.childNodes[0].childNodes[question].childNodes.length;
    var i=0;
    // ---- affiche chaque réponse dans un radio button + text Area ---------
    while(i<nbNoeud) {
        this["tRep"+i] = this.createClassChildAtDepth(TextArea,DepthManager.kTop);
        this["tRep"+i]._x = 50;
        this["tRep"+i]._y = 60 + i*30;
        this["tRep"+i]._width = 300;
        this["tRep"+i]._height = 60;
        this["tRep"+i].editable = false;
        this["tRep"+i].html = true;
        this["tRep"+i].wordWrap = true;
        this["tRep"+i].text = chargeQcm.childNodes[0].childNodes[question].childNodes[i].firstChild;       
        this["btnRep"+i] = this.createClassChildAtDepth(RadioButton,DepthManager.kTop);
        this["btnRep"+i]._x = -60;
        this["btnRep"+i]._y = 65 + i*30;
        this["btnRep"+i].labelPlacement = "left";
        this["btnRep"+i].label = "R-"+(i+1);
        this["btnRep"+i].groupName = "radioGroup";
        this["btnRep"+i].data = chargeQcm.childNodes[0].childNodes[question].childNodes[i].attributes.point;
        i++;
    }
   
}
// -------------- Placement du bouton suivant ------------------------
var btn_Suivant:Button = createClassChildAtDepth(Button,DepthManager.kTop);
btn_Suivant.label = "Suivant";
btn_Suivant._x = 320;
btn_Suivant._y = 270;
btn_Suivant._width = 3;
btn_Suivant._height = 4;
// -------------------- Ecouteur radioButton ------------------
var radioButtonListener:Object = new Object();
radioButtonListener.click = function (evt:Object):Void{
    trace("Ecouteur radio fonctionne");
    pointResultat = evt.target.selectedData;
}
radioGroup.addEventListener("click",radioButtonListener);
// ----------------------- Ecouteur Bouton Suivant --------------------
var buttonListener:Object = new Object();
buttonListener.click = function(evt:Object):Void{
    if(pointResultat!=-1){
        score+=pointResultat;
        pointResultat=-1;
        question++;
        if(question<chargeQcm.childNodes[0].childNodes.lenght){ afficherQuestion(); }
        else { trace("Fin du QCM."); }
    }
}
btn_Suivant.addEventListener("click", buttonListener);

jeudi 11 janvier 2007 à 09:16:30 | Re : Ecouteur d'évènement

cefar

Réponse acceptée !
Bonjour,

la solution de mon problème m'a été communiqué :

la ligne de code : radioGroup.addEventListener("click",radioButtonListener);
n'est pas au bon endroit, car radioGroup^n'est pas encore définit.

je doit mettre cette ligne après ma boucle while dans afficherQuiestion()

Bonne journée


Cette discussion est classée dans : question, var, childnodes, tquestion, trep


Répondre à ce message

Sujets en rapport avec ce message

[F8] action sur évènements [ par cefar ] Bonjour à tous et toutes,J'ai un soucis avec les écouteurs sur des composants.Voici mon code de mon fichier.as :import mx.controls.RadioButton;import duplicateMovieClip, RadioButton selon le fichier XML [ par cefar ] Bonjour,Je tente de développer un QCM avec chargement d'un fichier XML.Le nombre de réponse par question n'est pas fixe.Je fais une boucle pour placer Afficher une photo à partir d'un fichier xml [ par way2web ] Bonjour, j'essaye de créer une galerie photos en flash qui charge les images depuis un fichier xml, je suis actuellement bloqué à l'étape où je souhai Création en manipulation de clip en AS [ par ypauleau ] J'ai cherché sur le net et j'ai toujours pas compris, Voici mon problème : Je cherche à créer des instances d'un clip que j'ai créer dans la bibliothè Pk mon preloader ne fonctionne pas ?? [ par way2web ] Bonjour,J'ai voulu rajouter un preloader au chargement des images de ma galerie photo, j'ai donc placé ce code[code]eloader.onLoadProgress = function( connexion XML - help me please ! [ par thePureXtc ] Bonjour à tous,D'habitude je crée moi-même le XML et m'y connecte donc sans trop de problèmes. Ici je dois collaborer avec une boîte qui ne n'arrive p chargement php/xml/flash [ par kangun ] bonjourj'essai de charger un fichier xml (écrit par un  script php) mais cela ne fonctionne pas :voici le code[code]degustation = new XML();degustatio Conversion en nombre.. ? [ par Lyche ] Bonjour.Je suis devant un problème un peu stupide, mais je ne trouve pas la solution, ni sur l'aide, ni sur les sites.J'ai vu la fonction : "Number(pa Menu XML avec sous rubriques qui se rechargent [ par fandeflash ] Bonjour, J'ai repris le modèle de Flash MX pour faire un menu horizontal avec contenu en XML. mon site est en php et a chaque fois qu'on clique sur u


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales