Código :
var p:Boolean = false;
var t:Number = 0;
function dibujaTablero(mc:MovieClip, tam:Number, es:Array):MovieClip{
mc.createEmptyMovieClip("sopa",this.getNextHighestDepth());
var str:String = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ";
var letras:Array = str.split("");
var casillas:Array = [];
for(var i:Number = 0; i< es.length; i++){
var tmp:Array = [];
for(var j:Number = 0; j< es[i].length ; j++){
tmp[j]= sopa.attachMovie("casilla","c_"+i+"_"+j, sopa.getNextHighestDepth());
tmp[j].l_txt.text = (es[i][j]!="")?es[i][j].toUpperCase():letras[random(letras.length)];
tmp[j]._width = tam;
tmp[j]._height = tmp[j]._width;
tmp[j]._x = (j!=0)? tmp[j-1]._x+tmp[j-1]._width : 0;
tmp[j]._y = (i!=0)? casillas[i-1][j]._y+casillas[i-1][j]._height : 0;
tmp[j].mascara._visible = false;
tmp[j].sel = false;
tmp[j].hitArea = tmp[j];//
tmp[j].onMouseDown = seleccionar;
tmp[j].onRollOver = iluminar;
}
casillas[i] = tmp;
}
return sopa;
}
function seleccionar(){
if(this.hitTest(_root._xmouse,_root._ymouse , true)){
//this.mascara._visible = !this.sel;
//this.sel = (this.sel)?false:true;
cambEstado(this,!this.sel);
}
}
function iluminar(){
if(this.hitTest(_root._xmouse,_root._ymouse , true)){
this._alpha = (this.sel)?this._alpha:80;
}
this.onRollOut = function(){
this._alpha = (this.sel)?this._alpha:100;
}
}
function cambEstado(mc:MovieClip, e:Boolean){
mc.mascara._visible = e;
mc.sel = e;
}
function alinear(w:Number,h:Number,mc:MovieClip, pos:String):Void{
switch(pos){
case "left":
mc._x = 0;
break;
case "right":
mc._x = w - mc._width;
break;
case "center":
mc._x = (w - mc._width) / 2;
break;
case "top":
mc._y = 0;
break;
case "middle":
mc._y = (h - mc._height) / 2;
break;
case "bottom":
mc._y = h- mc._height;
break;
}
}
function crearEsquema(pos:Array,pal:Array,w:Number , h:Number):Array{
var res:Array = new Array(h);
for(var i:Number=0; i<res.length ; i++){
res[i] = new Array(w);
}
for(var i:Number=0 ; i<pal.length ; i++){
tmp = pal[i].split("");
for(var k:Number = 0; k<tmp.length ;k++){;
if(pos[i][0]==pos[i][2]){
if(pos[i][1]>pos[i][3]){
res[pos[i][1]-k][pos[i][0]] = tmp[k];
} else {
res[pos[i][1]+k][pos[i][0]] = tmp[k];
}
} else if (pos[i][1]==pos[i][3]){
if(pos[i][0]>pos[i][2]){
res[pos[i][1]][pos[i][0]-k] = tmp[k];
} else{
res[pos[i][1]][pos[i][0]+k] = tmp[k];
}
} else{
res[pos[i][1]+k][pos[i][0]+k] = tmp[k];
}
}
}
for(var i:Number=0 ; i< res.length ; i++){
for(var j:Number = 0; j<res[i].length ; j++){
res[i][j] = (res[i][j]==undefined || res[i][j]==null)?"":res[i][j];
}
}
return res;
}
function marcada(mc:MovieClip, pal:String, pos:Array):Boolean{
var ok:Number = 0;
for(var k:Number = 0; k<pal.length ;k++){
if(pos[0]==pos[2]){
if(pos[1]>pos[3]){
if(mc["c_"+[pos[1]-k]+"_"+[pos[0]]].sel){
ok++;
}
} else {
if(mc["c_"+[pos[1]+k]+"_"+[pos[0]]].sel){
ok++;
}
}
} else if (pos[1]==pos[3]){
if(pos[0]>pos[2]){
if(mc["c_"+[pos[1]]+"_"+[pos[0]-k]].sel){
ok++;
}
} else{
if(mc["c_"+[pos[1]]+"_"+[pos[0]+k]].sel){
ok++;
}
}
} else{
if(mc["c_"+[pos[1]+k]+"_"+[pos[0]+k]].sel){
ok++;
}
}
}
return (ok == pal.length)?true:false;
}
function validar(mc:MovieClip, pals:Array, pos:Array):Number{
var correctas:Number = 0;
for(var i:Number = 0; i<pals.length ; i++){
if(marcada(mc,pals[i],pos[i])){
correctas++;
}
}
return correctas;
}
// eliminar esta variable cuando se ponga el otro boton (es solo provisional)
if(!boton || boton== null){
this.attachMovie("mc_btn","boton",this.getNextHighestDepth());
boton.tit_txt.text = "Comprobar";
}
boton._visible = true;
alinear(Stage.width,Stage.height,boton, "center");
// esta es la accion del boton
boton.onPress = function(){
var tot:Number = validar(_root.sopa,_root.pal, _root.pos);
if(!mas){
_root.attachMovie("vacio","mas",_root.getNextHighestDepth());
}
if(!mensaje){
_root.attachMovie("mensaje","mensaje",_root.getNextHighestDepth());
}
with (mas){
_alpha = 80;
_width = Stage.width;
_height = Stage.height;
}
mensaje.tot_txt.text = tot+" correctas de "+_root.pal.length;
mensaje.fel_txt.text = (tot<=_root.pal.length/2)?"Debes estudiar mas!":((tot<_root.pal.length)?"Casi perfecto!":"Perfecto!");
alinear(Stage.width,Stage.height,mensaje, "center")
alinear(Stage.width,Stage.height,mensaje, "middle")
back_btn.enabled = false;
next_btn.enabled = false;
boton.enabled = false;
if(!cerrar){
_root.attachMovie("mc_btn","cerrar",_root.getNextHighestDepth());
cerrar.tit_txt.text = "Aceptar";
alinear(Stage.width,Stage.height,cerrar, "center")
cerrar._y = mensaje._y + mensaje._height + 5;
}
mensaje._visible = true;
mas._visible = true;
cerrar._visible = true;
cerrar.onPress = function(){
mensaje._visible = false;
mas._visible = false;
this._visible = false;
boton.enabled = true;
back_btn.enabled = true;
next_btn.enabled = true;
}
}
// Para ir seleccionando hay que hacer clic en cada casilla y para deseleccionar se vuelve a hacer clic
var pal:Array = ["completo","llano","obtuso","grados","recto","agudo","angulo","transportador"];
var pos:Array = [color=#A40000][[0,7,0,0],[2,0,6,4],[6,4,1,4],[9,0,9,5],[7,1,7,5],[4,6,8,6],[6,7,11,7],[0,9,12,9]];[/color]
if(!sopa || sopa == null){
var sopa:MovieClip = dibujaTablero(this,28.6,crearEsquema(pos,pal,13,10));
sopa.opaqueBackground = 0;
sopa._x = 181.2;
sopa._y = 162.7;
}
sopa._visible = true;
boton._y = sopa._y + sopa._height + 10; 