Estimado Experto ates que nada te envío un cordial saludo y te molesto con la siguiente pregunta: Antes te comento lo siguiente, estoy realizando un catalogo interactivo en flash 8 para CD, y quiero agregar una herramienta que me permita buscar dentro de este catalogo un producto especifico, haste de cuenta por un campo de texto donde al poner la clave del producto u el nombre de este automáticamente me posicione dentro de mi película u escena en el aparrtado del producto que se buscando.
Espero haber explicado. Quisiera saber como puedo hacer esto y si en flash 8 se puede (es para utilizarlo en un proyecto para CD).
Bien... esto depende de como esté guardado el texto en el que hay que buscar. Te explico una de las mejores soluciones que veo. Creas un Array (si no lo sabes, es como una lista de variables. Así con "nombre_de_array[0]" accederíamos a la primera variable, con "nombre_de_array[1]" al segundo, etc.) Y en cada casilla pones una cadena de texto como por ejemplo "Placa Base Placa Madre CPU", usando una casilla para cada producto. Para este ejemplo supongamos que tenemos que buscar la palabra "casa" dentro de el array y mostrar en que casillas se encuentra. --- //Creamos el array y le asignamos valores matriz = new Array(); matriz[0] = "Estoy de pie"; matriz[1] = "Mirando por la ventana"; matriz[2] = "Desde mi casa"; matriz[3] = "Viendo la calle"; matriz[4] = "Y las demás casas"; matriz[5] = "Fin"; //Especificamos la palabra a buscar y el mensaje que se mostrará al finalizar palabra = "casa"; mensaje = "Los resultados son:\n" //IMPORTANTE! Flash distinguirá las mayúsculas y las minúsculas, así que con las siguientes líneas pasamos todo a minúsculas for (i=0;i<matriz.length;i++){ matriz.toLowerCase(); } palabra.toLowerCase trace (matriz[4]) trace (palabra) //Y ponemos el codigo buscador: for (i=0;i<matriz.length;i++){ if (matriz.lastIndexOf(palabra) != -1) { mensaje += "En la casilla "+i+" de el Array matriz se encuentra la palabra "+palabra+".\n"; } } //Al principio del código le asignamos una cadena de 20 letras a la variable "mensaje", si "mensaje" no ha cambiado es que no se han encontrado resultados. if (mensaje.length = 20) { mensaje += "No se encontraron resultados." } //Y mostramos el mensaje: Trace (mensaje) //Muestra también que la línea 4 porque contiene la palabra "casa" seguida de una "s" que no es tomada en cuenta" --- Bien, ahora te explico lo que he usado: ".Length" te permite saber el tamaño, si es una cadena te dirá cuantos caracteres tiene (siendo 0 si tiene uno, 1 si tiene dos...) ".LastIndexOf" es el verdadero buscador, busca en la cadena que está antes del punto la cadena que se le dé entre paréntesis. Cuando la encuentra devuelve la posición (es decir, si la letra "c" de "casa" estuviera fuera la cuerta letra devolvería 3. Si no la encuentra devuelve -1 (por eso la línea "if (matriz.lastIndexOf(palabra) != -1)") Para adaptarlo tienes que crear una casilla de Introducción de texto, que tenga como variable "palabra" y, si por ejemplo, el producto "Monitores" se encuentra en el fotograma 5, en la casilla número 5 del array escribes "monitores". Así, si estás buscando la palabra "monitores" la encontrará al llegar a la casilla 5, y si cambiamos --- mensaje += "En la casilla "+i+" de el Array matriz se encuentra la palabra "+palabra+".\n"; --- Por --- GotoAndStop(i) --- Nos llevará al fotograma 5, que es donde se encuentra la información de "Monitores". Espero no haberte sobrecargado, pero es que había mucho que decir. Cualquier duda vuelve a preguntar. Suerte --- Sel