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 le nombre de radiobutton en fonction du nombre de réponses dans le fichier XML. Pour cela, j'utilise un duplicateMovieClip.
Tout ce passe bien pour la première question.
Lors du clic sur le bouton suivant pour passer à la seconde question, je fais un removeMovieClip pour enlever les radiobuttons concernant la première question.
Lors de l'affichage de la 2e question, les radiobutton pour cette question n'apparaissent pas.
Puis-je avoir un éclairage sur l'erreur de mon code.
ci-dessous le code sur la première vignette :
stop();
var score = 0;
var pointResultat = -1;
var question = 0;
// Chargement du fichier XML //
var chargeQcm:XML = new XML();
chargeQcm.load("qcm.xml");
chargeQcm.ignoreWhite = true;
chargeQcm.onLoad = function() { afficherQuestion(); }
// Placement de la question et des réponses //
afficherQuestion = function () {
tQuestion.text = "Q-"+(question+1) +". "+chargeQcm.childNodes[0].childNodes[question].attributes.intitule;
var nbNoeud = chargeQcm.childNodes[0].childNodes[question].childNodes.length;
var i = 0;
while(i<nbNoeud){
duplicateMovieClip("choixBtn","repBtn"+i,i);
this["repBtn"+i]._y = 60 + i * 35;
this["repBtn"+i]._x = -30;
this["repBtn"+i].groupName = "reponses";
this["repBtn"+i].labelPlacement = "left";
this["repBtn"+i].label = "R-"+(i+1);
this["repBtn"+i].data = chargeQcm.childNodes[0].childNodes[question].childNodes[i].attributes.point;
_root.createTextField("txtRep"+i,(i+nbNoeud),75,60+i*35,350,60);
this["txtRep"+i].html = true;
this["txtRep"+i].multiline = true;
this["txtRep"+i].selectable = false;
this["txtRep"+i].wordWrap = true;
this["txtRep"+i].htmlText = chargeQcm.childNodes[0].childNodes[question].childNodes[i].firstChild;
i++;
}
};
btnSuivant.onPress = function() {
if (pointResultat != -1) {
score += pointResultat;
pointResultat = -1;
var nbNoeud = chargeQcm.childNodes[0].childNodes[question].childNodes.length;
for(var j=0;j<nbNoeud;j++){ removeMovieClip("repBtn"+j); }
question++;
if (question<chargeQcm.childNodes[0].childNodes.length) { afficherQuestion(); }
else { nextFrame(); }
}
};
var surveille = new Object();
surveille.click = function(resultat) { pointResultat = Number(resultat.target.selectedData);};
reponses.addEventListener("click", surveille);
mon fichier XML est de la forme suivante :
<?xml version="1.0" encoding="utf-8"?>
<qcm><question intitule="Quelle est la définition du mot 'Prophylaxie' ? ">
<reponse point="1">Ensemble de pratiques évitant l'apparition de maladie.</reponse>
<reponse point="0">Le fait d'obtenir une race parfaite.</reponse>
<reponse point="0">Se dit d'un rythme de 24 heures.</reponse>
<reponse point="0">Concerne les chromosomes caractéristiques d'une espèce donnée.</reponse>
<reponse point="0">Ensemble de régles de conduite, assez souvent relatif à la morale.</reponse>
<reponse point="0">Donner la mort à quelqu'un avant la mort naturelle. On dit aussi mort douce ou sans souffrance.</reponse>
</question>
</qcm>
Merci d'avance
[b]CEFAR[/b]