Prova de competències bàsiques: muntatge de la part d'avaluació  
 
 
  Aquesta aplicació és un pél diferent de les que hem fet fins ara.
La part on es dòna la informació és trova en el missatge verbal del primer fotograma, que s'ha d'escoltar sencer abans de continuar, ja que es tracta d'una prova de comprensió oral.
En continuar l'exercici es pot escoltar tantes vegades com faci falta.
Hi afegirem un qüestionari d'elecció múltiple amb tres possibles respostes per a cada pregunta. L'usuari/a respon a cada una de les preguntes i automàticament es passa a la pregunta següent. No té constància de si ha contestat bé fins al final del qüestionari.
Lògicament, en acabar l'activitat, si volem que sigui formativa hi ha d'haber un informe més ampli que només el nombre d'encerts o d'errades.
Aixó comporta anar construint l'infrome final a mida que es respon a cada una de les diferents preguntes.
Hi ha un comptador d'exercicis i quan s'arriba a la última pregunta s'ofereix en un quadre de text tipus HTML l'informe..
Tot i les limitacions del codi HTML que suporta el Flash MX, en tenim prou perquè podem discriminar el color dels caràcters i oferir d'una manera visual, en color verd si la resposta és correcta o en color vermell si no ho és. En aquest cas últim hi afegim en itàlica i de color blau i entre parèntsi la resposta correcta.
Aquesta aplicació permet confeccinar qüesrtionaris sense límit de preguntes ja que es treballa amn variables indexades i en un sol fotograma.
Amb més domini del codi es pot fer que les preguntes no surtin mai en en mateix ordre, seleccionar-ne unes quantes d'un paquet molt gran etc.
Com hem dit en altres llocs d'aquest manual, amb aplicacions tiupus PHP MySQL o semblants es poden enmagtzemar aquests resulats en bases se dades i oferir al professorat la possibilitat de comptar amb eines àgils per a l'avaluació i seguiment dels processos d'aprenentatge del seu alumnat, alliberant-vos de la feina mecànica de la correcció i mantenir sempre els treballs de l'alumnat i l'avaluació en el servidor.
 
     
   Els objectius són:  
     
 

•Treballar amb variables indexades

 
 

• Programar una activitat de qüestionari d'elecció múltiple que es pot ampliar sempre que es vulgui. Amb la mateixa programació es podem fer qüestionaris de qualsevol àrea..

 
 

• Oferir una avaluació formativa de l'activitat aprofitant el codi HTML que suporta el Flash MX.

 
     
  Mostra de l'aplicació un cop acabada  
     
   
     
     
     
 Desenvolupament de la pràctica  
   
Aneu a la capa accions del fotograma 2  
     
  Comenceu, com sempre, amb l'ordre;  
  System.useCodepage = true;  
  per a no tenir problemes amb els caràcters.
A continuació iniciem el comptador d'exercicis amb la variable ce:
 
  ce = 1;  
     
Estructura de les dades:  
     
  A l'escenari hi ha quatre quadres de text dinàmic, amb les seves corresponents variables, que s'han d'actualitzar a cada exercici, d'una manera automàtica.
 
     
 
     
  En funcio d'aquestes variables s'estructuren les dades. Els valors de les variables els definirem a les funcions posa_enunciat () i posa_respostes().  
     
  Com que treballem en un sol fotograma hem d'emprar variables indexades, la variable ce indica en quin exercici estem. Comencem amb ce=1..  
     
  L' estructura de les dades és sempre la mateixa:
Un enunciat indexat, (enun1, enun2, enun3...)
Les possibles respostes a cada enunciat,( resp11, resp12, resp13 ) corresponen al primer enunciat.
L'indicador per a cada enunciat de quina és la resposta correcta:
Definim quina de les tres possibles respostes és la correcta. Amb respc1=resp12 indiquem que la resposta correcta a la primera pregunta és la segona.
poseu aquest codi a la programació:

 
     
  System.useCodepage = true;
ce = 1;
*/continguts de les preguntes, respostes possibles i respostes correctes */
enun1 = "L'astronauta Amstrong va dir que el que més li havia cridat l'atenció en el seu viatge fou:";
resp11 = "La immensitat de l'espai.";
resp12 = "La bellesa de l'aigua de la terra.";
resp13 = "L'escassetat d'aigua a l'univers.";
respc1 = resp12;
enun2 = "Els habitants de la costa quan no veuen el mar:";
resp21 = "En parlen sovint.";
resp22 = "El somien cada dia.";
resp23 = "En senten enyorança.";
respc2 = resp23;
enun3 = "Quina part del nostre planeta està ocupada per la terra?:";
resp31 = "1/2";
resp32 = "3/4";
resp33 = "1/5";
respc3 = resp33;
enun4 = "Mediterrània vol dir:";
resp41 = "Mar voltat de terres.";
resp42 = "Mar i terres juntes.";
resp43 = "Terres, al mig del mar.";
respc4 = resp41;
enun5 = "La fauna de la mar Mediterrània està formada per:";
resp51 = "Poques espècies i escassetat de cada espècie.";
resp52 = "Gran abundància d'espècies i abundància de cada espècie.";
resp53 = "Moltes espècies i pocs exemplars de cada espècie.";
respc5 = resp53;
enun6 = "Els peixos més abundants a la Mediterrània són:";
resp61 = "El lluç i la sardina.";
resp62 = "La tonyina i la sardina.";
resp63 = "El llobarro i la tonyina.";
respc6 = resp62;
enun7 = "L'autor compara el pescador de la Mediterrània amb:";
resp71 = "Un jardiner.";
resp72 = "Un agricultor.";
resp73 = "Un forner.";
respc7 = resp72;
enun8 = "En el text els pescadors fan servir:";
resp81 = "Els hams.";
resp82 = "Les xarxes.";
resp83 = "La canya de pescar.";
respc8 = resp82;
enun9 = "A la Mediterrània, hi trobem una unitat fruit d'haver estat:";
resp91 = "Un lloc d'identificació de pobles.";
resp92 = "Un lloc d'avinença de pobles.";
resp93 = "Un lloc de barreja de pobles.";
respc9 = resp93;
enun10 = "Els vents del Sàhara i de l'Atlàntic propicien:";
resp101 = "Un clima suau amb onades fortes de calor o fred.";
resp102 = "Un clima moderat, sense cap daltabaix.";
resp103 = "Un clima extremad.";
respc10 = resp101;
enun11 = "El text que acabes de sentir, on penses que aniria més bé?:";
resp111 = "En una exposició sobre la cuina mediterrània.";
resp112 = "En una exposició general sobre la Mediterrània.";
resp113 = "En una pel·lícula d'aventures a la Mediterrània.";
respc11 = resp112;
*/ aquesta variable indica el nombre màxim d'exercicis*/
cemax = 11;
 
     
  Si vulguéssim ampliar les preguntes aniriem afegint les variables amb el següent protocol i modificariem al valor de cemax.
A continuació a la capa accions del fotograma 2 anem afegint el codi de les diferents funcions que emprarem.
 
     
  Funció posa enunciat()  
     
  function posa_enunciat() {
ex = "<font color='#0066cc' >Exercici <B>"+ce+"</B>/<B>"+cemax+"</B></font>";
*/l'ordre this és perquè identifiqui el valor de la variable indexada. Tot depén de la variabe ce*/
enunciat = this["enun"+ce];
}
*/activem la funcció en arribar al fotograma 2*/
posa_enunciat();
 
     
  Funció posa respostes()  
     
  function posa_respostes() {
*/ donem valor a les variables resp1, resp2 i resp3, en funció dels valores de ce.*/
resp1 = this["resp"+ce+1];
resp2 = this["resp"+ce+2];
resp3 = this["resp"+ce+3];
}
posa_respostes();
 
     
Funció seguent()  
   
  function seguent() {
*/quan es crida la funció augmenta en una unitat la variable ce i posa l' enunciat i les respostes./*
ce++;
posa_enunciat();
posa_respostes();
*/en quan s'han esgotat tots els exercicis s'ha d'anar al fotograma 3./*
if (ce>cemax) {
gotoAndStop(3);
}
}
 
     
  Funció corregeix()  
     
  function corregeix() {
*/donem valor a la variable respc buscant el valor correponent segons ce./*
respc = eval("respc"+ce);
*/si la resposta és correcta es crida la funció be() que afegeix la resposta de color verd a l'enunciat */
if (resp == respc) {
be();
*/si no és correcta es crida la funció mal()./*
} else {
mal();
}
}
 
     
  Per a generar el resum partim d'una variable sortida que inicialemnt és buida i a cada exercici hi anem afegint les variables ex, enunciat, i la resposta en color verd on vermell segons el cas. Aquestes funcions es criden a la funció corregir.  
     
  Funció be()  
     
  function be() {
*/Com que treballem amb codi HTML ens cal posar etiquetes: <BR> indica un salt de lìnia, &nbsp; indica un espai en blanc, segons els navegadors, amb l'Explorer no fa falta. .
<FONT color=******* >indica el nombre de color. Ha d'anar entre cometes simples ja que la doble cometa indica la variable de text. /*

sortida = sortida+ex+"<BR>.-&nbsp;"+eval("enun"+ce)+"<BR>"+"<FONT color='#33ff33'>"+resp+"&nbsp;</FONT><BR>";
*/ Un cop muntada la sortida passem a un altre exercici./*
seguent();
}
 
     
  Funció mal()  
     
  function mal() {
sortida = sortida+ex+"<BR>.-&nbsp;"+eval("enun"+ce)+"<BR>"+"<Font color='#ff0000'>"+resp+"&nbsp;</FONT>&nbsp;<I>("+eval("respc"+q)+")</I><BR>";
*/augmentem en 1 el comptador d'errades*/
k++;
seguent();
}
 
     
     
  Programació dels botons  
     
  Com que els botons tenen noms d'instància podem posar la programació de les seves accions a la capa accions del segon fotograma.  
     
  boto_a.onRelease = function() {
*/el valor de resp és resp1/*
resp = resp1;
/*cridem a la funció corregeix()*/
corregeix();
};
*/el mateix per als altres botons */

boto_b.onRelease = function() {
resp = resp2;
corregeix();
};
boto_c.onRelease = function() {
resp = resp3;
corregeix();
};
 
     
  Codi sencer de les acccions del fotograma 2  
     
  System.useCodepage = true;
ce = 1;
enun1 = "L'astronauta Amstrong va dir que el que més li havia cridat l'atenció en el seu viatge fou:";
resp11 = "La immensitat de l'espai.";
resp12 = "La bellesa de l'aigua de la terra.";
resp13 = "L'escassetat d'aigua a l'univers.";
respc1 = resp12;
enun2 = "Els habitants de la costa quan no veuen el mar:";
resp21 = "En parlen sovint.";
resp22 = "El somien cada dia.";
resp23 = "En senten enyorança.";
respc2 = resp23;
enun3 = "Quina part del nostre planeta està ocupada per la terra?:";
resp31 = "1/2";
resp32 = "3/4";
resp33 = "1/5";
respc3 = resp33;
enun4 = "Mediterrània vol dir:";
resp41 = "Mar voltat de terres.";
resp42 = "Mar i terres juntes.";
resp43 = "Terres, al mig del mar.";
respc4 = resp41;
enun5 = "La fauna de la mar Mediterrània està formada per:";
resp51 = "Poques espècies i escassetat de cada espècie.";
resp52 = "Gran abundància d'espècies i abundància de cada espècie.";
resp53 = "Moltes espècies i pocs exemplars de cada espècie.";
respc5 = resp53;
enun6 = "Els peixos més abundants a la Mediterrània són:";
resp61 = "El lluç i la sardina.";
resp62 = "La tonyina i la sardina.";
resp63 = "El llobarro i la tonyina.";
respc6 = resp62;
enun7 = "L'autor compara el pescador de la Mediterrània amb:";
resp71 = "Un jardiner.";
resp72 = "Un agricultor.";
resp73 = "Un forner.";
respc7 = resp72;
enun8 = "En el text els pescadors fan servir:";
resp81 = "Els hams.";
resp82 = "Les xarxes.";
resp83 = "La canya de pescar.";
respc8 = resp82;
enun9 = "A la Mediterrània, hi trobem una unitat fruit d'haver estat:";
resp91 = "Un lloc d'identificació de pobles.";
resp92 = "Un lloc d'avinença de pobles.";
resp93 = "Un lloc de barreja de pobles.";
respc9 = resp93;
enun10 = "Els vents del Sàhara i de l'Atlàntic propicien:";
resp101 = "Un clima suau amb onades fortes de calor o fred.";
resp102 = "Un clima moderat, sense cap daltabaix.";
resp103 = "Un clima extremad.";
respc10 = resp101;
enun11 = "El text que acabes de sentir, on penses que aniria més bé?:";
resp111 = "En una exposició sobre la cuina mediterrània.";
resp112 = "En una exposició general sobre la Mediterrània.";
resp113 = "En una pel·lícula d'aventures a la Mediterrània.";
respc11 = resp112;
cemax = 11;
function posa_enunciat() {
ex = "<font color='#0066cc' >Exercici <B>"+ce+"</B>/<B>"+cemax+"</B></font>";
enunciat = this["enun"+ce];
}
posa_enunciat();
function posa_respostes() {
resp1 = this["resp"+ce+1];
resp2 = this["resp"+ce+2];
resp3 = this["resp"+ce+3];
}
posa_respostes();
function be() {
sortida = sortida+ex+"<br>.-&nbsp;"+eval("enun"+ce)+"<BR>"+"<Font color='#33ff33'>"+resp+"&nbsp;</FONT><BR>";
seguent();
}
function mal() {
sortida = sortida+ex+"<BR>.-&nbsp;"+eval("enun"+ce)+"<BR>"+"<Font color='#ff0000'>"+resp+"&nbsp;</FONT>&nbsp;<I>("+eval("respc"+q)+")</I><BR>";
k++;
seguent();
}
function seguent() {
ce++;
posa_enunciat();
posa_respostes();
if (ce>cemax) {
gotoAndStop(3);
}
}
function corregeix() {
respc = eval("respc"+ce);
if (resp == respc) {
be();
} else {
mal();
}
}
boto_a.onRelease = function() {
resp = resp1;
corregeix();
};
boto_b.onRelease = function() {
resp = resp2;
corregeix();
};
boto_c.onRelease = function() {
resp = resp3;
corregeix();
};
stop();
 
     
  Accions del fotograma 3  
     
  Un cop arribat l final dels exercicis, quan el comptador ce en aquest cas val 12, més gran que cemax, la funció seguent( ) ens porta al fotograma 3 on hi ha el l'informe de l'activitat. Hi ha un quadre de text HTML dinàmic amb la variable sessió, que cal definir.
Poseu-hi aquest codi:

     
  */ la variable resum afegeix al text que volem posar-hi les variables k, comptador d'errades i cemax, (nombre total d'exercicis)/*
resum = "Has tingut <B>"+k+" </B>errades en els <B>"+cemax+" </B>exercicis";
*/la variable final sessio junta les variables nom_usuari, proposta, sortida i resum amb el text que hi afegim/*
sessio = nom_usuari+": aquí tens la teva avaluació de la prova<br><br><font color='#003399' ><B>"+proposta+"</B></FONT><BR><BR>"+sortida+"<BR><BR>"+resum;
stop();
 
     
     
  Programació dels botons d'scroll  
     
  Com que la variable sessió pot ser mol llarga, afegim els botons d'scroll amb el seu codi.  
     
  Accions per la botó pujar scroll.  
     
   
     
  accions per al botó baixar scroll.  
     
   
     
  Deseu l'aplicació publiqueu-la i comproveu el seu funcionament.  
     
  Si voleu millorar l'avaluació de l'aplicació hi podeu afegir un comentari en funció del nombre d'errades.  
     
  Si la voleu fer servir com a plantilla les dades es poden posar en un arxiu extern. Si us interessa el tema la part de codi fixa es pot posar també en un arxiu extern, programacio.as, i cridar-lo amb l'ordre #include. Fixeu-vos que l'unic que varia d'una aplicació a una altra són les dades.
També us podeu plantejar que el missatge inicial no sigui un so com en aquest cas, pot ser un video, una imatge, un mapa o un text llarg.