gracias Arkane !
no quera abandonar la recursividad para poder renderizar uno a uno los
clips...
pero la verdad tampoco pasa nada, as que, un bonito for y chutando...
por cierto, si queris una sopa de letras, es open source:
en el fla:
#include "../../../includes/sopadeletras.as"
#include "../../../includes/sdf_prototypes.as"
#include "mc_tween2.as" ---
http://hosted.zeh.com.br/mctween/
y un MovieClip en la librera: "letra" con un fondo "bkg" para colorear
y un TextField "tf"
sopadeletras.as
getPressedRight= function
(pressed){
for (var x in tips){
if(tips[x][0]==pressed){
pressedWord=x;
return true;
}
}
return false;
}
getReleasedRight= function (pressed){
for (var x in tips){
if(tips[x][0]==pressed){
releasedWord=x;
return true;
}
}
return false;
}
getWordDirection= function (){
var ix=pressedArray[0];
var iy=pressedArray[1];
var fx=releasedArray[0];
var fy=releasedArray[1];
if((fx-ix)0){
vx=1;
} else {
vx=-1;
}
if((fy-iy)0){
vy=1;
} else {
vy=-1;
}
if(ix==fx){ vx=0 };
if(iy==fy){ vy=0 };
var direccion=new Array();
direccion[0]=vx;
direccion[1]=vy;
//trace("-- "+vx+" "+vy);
//trace("direccion "+direccion)
return direccion;
}
highlightSoupWord=function(word){
//trace("hola");
var dir=getWordDirection();
trace(dir);
var dx=dir[0];
var dy=dir[1];
var letras=palabras[word].length;
//trace(letras);
var ix=Number(pressedArray[0]);
var iy=Number(pressedArray[1]);
for(i=0;iletras;i++){
var _c=ix+dx*i;
var _r=iy+dy*i;
var mc=sopa[_c+"_"+_r];
trace(mc+" "+_c+"_"+_r);
mc.bkg.colorTransformTo ( 0, 99, 0, 196, 0, 00, 60, 60, 0.2,
"linear");
}
errores=errores-1;
if(errores==0){
pistas.htmlText=sopaLV["frase"];
}
}
//___arrangeItems
arrangeItems = function ()
{
var _r=1;
var _air=0;
var next_x=_air;
var next_y=_air;
var _c=20;
var _xd=24;
for (i = 1; i = totalitems; i ++)
{
var mc = sopa ["item" + i];
mc.floatTo (0.9,next_x, next_y);
var resto=i % _c;
if (resto == 0)
{
next_x = _air;
next_y += _xd;
_r++;
} else
{
next_x += _xd;
// var next_y+=yd;
}
mc._x =next_x;
mc._y =next_y;
mc._c=(resto==0) ? 20 : resto ;
mc._r=(resto==0) ? _r-1 : _r;
//trace("***"+i+"---"+mc.letra+" resto: "+resto+"
_c:"+mc._c+" _r:"+mc._r);
mc._name=mc._c+"_"+mc._r;
//trace(i+"--- "+mc.letra+" "+mc._name)
}
//sopa._x = sopa._original_X;
//sopa._y = sopa._original_Y;
}
//___renderItems
render_item = function (n)
{
//trice("rendering item # "+n+" of "+totalitems+" items");
var newname = "item" + n;
var mc = sopa.attachMovie ("letra", newname, gnHD (this.sopa));
var letra=sopaData[n-1];
//trace ("mc " + mc );
//trace ("letra= " + letra);
mc.letra=letra;
mc.tf.text = letra;
mc. ()
{
var scope=this._parent._parent;
var _r=Math.floor(this._parent._ymouse/24)+1;
var _c=Math.floor(this._parent._xmouse/24)+1;
scope.pressed=_c+"_"+_r;
scope.pressedArray=new Array();
scope.pressedArray=pressed.split("_");
scope.pressedRight=getPressedRight(pressed);
//trace("oP "+letra+" "+scope.pressed+" ok:
"+scope.pressedRight);
}
mc. ()
{
//trace("oR "+letra);
}
mc. ()
{
var scope=this._parent._parent;
trace("scope "+scope);
var _r=Math.floor(this._parent._ymouse/24)+1;
var _c=Math.floor(this._parent._xmouse/24)+1;
scope.released=_c+"_"+_r;
scope.releasedArray=new Array();
scope.releasedArray=released.split("_");
scope.releasedRight=getReleasedRight(pressed);
if(scope.pressedRight scope.releasedRight
scope.pressedWord==scope.releasedWord){
scope.highlightSoupWord(scope.releasedWord);
}
//trace("oROut "+letra+" "+scope.released+" ok:
"+scope.releasedRight);
}
//trace("r---"+n+" "+newname+" "+ letra);
mc.order = n;
if (n = totalitems)
{
//trice("***rendering glossary terms finished");
arrangeItems ();
//menu_list.setstates ();
}
}
//___showContent
showContent = function ()
{
//trace ("---showContent");
//PALABRAS
palabras = new Array();
palabras=sopaLV["palabras"].split(",");
tips = new Array();
tips=sopaLV["tips"].split("|");
for (var x in tips){
tips[x]=tips[x].split("-");
}
errores=tips.length;
enunciado.htmlText=sopaLV["enunciado"];
pistas.htmlText=sopaLV["pistas"];
//trace("tips.length "+tips.length);
sopaLV["sopa"]=sopaLV["sopa"].strReplace(" ","");
sopaLV["sopa"]=sopaLV["sopa"].strReplace("\r","");
sopaLV["sopa"]=sopaLV["sopa"].strReplace("\n","");
sopaData = new Array();
sopaData=sopaLV["sopa"].split(",");
//trace("sopaData: "+sopaData);
totalitems =