Comunidad de diseño web y desarrollo en internet online

re-contar valor de array

Citar            
MensajeEscrito el 13 Ago 2004 08:34 am
Saludos a todos, gracias por la existencia de este sitio, y ruego porque sea aquí donde se me quite el dolor de cabeza que me está causando la ignorancia de AS.

Se trata de lo siguiente: Estoy haciendo un diccionario en donde existe una película principal que es la contenedora de los swf externos, cuyos nombres los tengo agrupados en un array.
Así que en el primer fotograma de esta peli tengo el siguiente código:

Código :

var palabras = ["abanico", "abdomen", "abeja", "abrazar", "abrigo", "abril", "abrir", "abuela", "aburrido", "acabar"]; 
palabras.sort(); 
contador = 0; 
minimo = 0; 
maximo = (palabras.length); 
carpeta = "a/" ;



De igual forma, en este pelicula base se encuentran dos botones, uno para ir adelante y otra para ir atrás en el array:

Código :

on(release){ 
contador++ 
if(contador<maximo){ 
loadMovie(carpeta+palabras[contador]+".swf", continente); 

continente._visible=0; 
preloadI = setInterval(preloadF, 100); 
function preloadF() 
{ 
loaded = continente.getBytesLoaded(); 
total = continente.getBytesTotal(); 
if (loaded>0 && loaded >=total) 
{ 
clearInterval(preloadI); 
continente._visible=1; 

} 
} 

} 
else { 
contador = 0; 
loadMovie(carpeta+palabras[contador]+".swf", continente); 
} 
} 



Hasta aquí todo bien: el array se ordena y el botón cumple su función de ir bajando una a una las películas.

El problema viene porque las palabras contenidas en el array tienen referencias cruzadas... Por poner un ejemplo, en "abril.swf" hay un botón que me remite, en el mismo clip vacío "continente", a "abeja.swf", en cuyo caso me he devuelto en el orden del array. Lo cual no quiere decir que el contador cambie.... Lo que yo necesito es que lo haga: que el contador ahora tenga el valor de "abeja" y no el de "abrir" (estas palabras son solo ejemplos, igual pueden ser otras palabras y por lo tanto otros valores).

Yo intuyo que es un problema tonto y que debe existir una forma para decirle a la variable "contador" que

Código :


"contador =  valor en el array de la película que actualmente se encuentra en el clip vacío continente... y olvidate del conteo que estabas haciendo antes" 



... Pero, ¿cómo es esta instrucción? ¿cómo digo que "continente = número del array correspondiente a la película que en ese momento se encuentra en pantalla"?

Espero haber expresado correctamente el asunto, y gracias a todos por la ayuda.

Por carloswalter

2 de clabLevel



 

unknown
Citar            
MensajeEscrito el 14 Ago 2004 03:24 am
Y no te vale hacer, por poner un ejemplo, una ruta absoluta

Código :

_root.dondetengaselswf.elnombredelavariable = _root.elotroswf.elarray[elnumerodeindice];


Avisanos si necesitas mas ayuda

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 14 Ago 2004 08:23 pm
Hola Freddie

Gracias por tu respuesta y tus intenciones de colaborarme. La solución que me propones no me sirve, ya la había pensado :(

El problema que tiene es que, de antemano, yo no puedo saber el número de índice pues éste estaría dado por el sort...

Por carloswalter

2 de clabLevel



 

unknown
Citar            
MensajeEscrito el 14 Ago 2004 08:31 pm
no entiendo eso, como no vas a poder saberlo usando la propiedad length?

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 14 Ago 2004 10:09 pm
tal vez implementando una función que te devuelva el número del índice que corresponda a la cadena que le envías...algo como

Código :

function miIndice(cadena:String){
 var x:Number = new Number();
 for(x = 0; x < _root.palabras.length; x ++){
  if(_root.palabras[x] == cadena){
    return x;
    break;
  }
 }
}

var palabra:String = new String("papasFritas");

trace("El índice de " + palabra + " es " + miIndice(palabra));

Me entiendes ? ?

Por gersonm

Claber

2238 de clabLevel

12 tutoriales
1 articulo
5 ejemplos

Genero:Masculino   Desarrollador de GAIA

Al otro lado de la mira

unknown
Citar            
MensajeEscrito el 16 Ago 2004 12:21 pm
Hola Gersonm!

Gracias por tu respuesta... la he estado probando y me devuelve cero... sin embago noto que efectivamente cambia el contador...
Cómo se escribe tu instrucción en as1.0?

Freddie! Seguramente no he entendido bien tu propuesta... si pudiéras explicármela de nuevo....

Elecash... gracias por tu tiempo en el msn, y gracias también por todas las luces que me has dado. Infortunadamente sigo atascado en el problema.

Si puedo postear el fla en algún lugar, tal vez todo se entendería mejor.

Por carloswalter

2 de clabLevel



 

unknown
Citar            
MensajeEscrito el 17 Ago 2004 03:03 am

Código :

function miIndice(cadena){
 var x;
 for(x = 0; x < _root.palabras.length; x ++){
  if(_root.palabras[x] == cadena){
    return x;
    break;
  }
 }
}

var palabra ="papasFritas";

trace("El índice de " + palabra + " es " + miIndice(palabra));

Bueno, si el problema era con la versión de AS, pues con este debería funcionar a la perfección...suerte

Por gersonm

Claber

2238 de clabLevel

12 tutoriales
1 articulo
5 ejemplos

Genero:Masculino   Desarrollador de GAIA

Al otro lado de la mira

unknown

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.