Comunidad de diseño web y desarrollo en internet online

Realizar búsqueda en texto estático y seleccionarlo.

Citar            
MensajeEscrito el 15 Abr 2008 03:44 pm
Saludos, he tratado de buscar algo que me aclarase esta duda, pero no he sido capaz de encontrar algo que logre hacer funcionar, si ya exisita algún post en el que se resolviera esta duda, pido mis disculpas.

El tema es el siguiente, necesito realizar una búsqueda en cientos de campos de texto estático y seleccionar el texto encontrado en caso de que exista. He tratado de hacerlo con el setSelected() del textSnapshot, pero no he sido capaz de seleccionar nada. A lo mas que he llegado es a recoger todo el texto en una cadena y encontrar la posición de caracter en la que empieza la palabra buscada, pero a la hora de seleccionarala, nada de nada, no se si hay algo que hago mal, o es que no se puede.

Si alguien es capaz de iluminarme un poco, le estaria muy agradecido, muchas gracias.

Sayonara beibis! Sonrisa

Por Tanakin

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Abr 2008 04:38 pm
Serian interesante definir bien que es lo que quieres hacer:
1) Seleccionar el texto como lo seleccionas con el mouse.
2) Resaltar un texto, por ejemplo, como un marcador en word.

la primera, olvidalo, solo se puede seleccionar una cosa a la vez, esta pensado para la proxima version de flash player la seleccion multiple y tambien el texto en columnas.
la segunda, lo primero que se me viene en mente es hacer un ciclo que identifica la cadena y le cambia el estilo:

Código :

var string:String = "Neque porro quisquam est qui dolorem ipsum quia dolor sit ameqt, consectetur, adipisci velit";
var findString:String = "eq";

var formatoSeleccionado:TextFormat = new TextFormat();
   formatoSeleccionado.color = 0xFF0000;

var tf:TextField = createTextField("tf", this.getNextHighestDepth(), 0, 0, 200, 200);
   tf.wordWrap = true;
   tf.multiline = true;
   tf.text = string;
   
   var prev:Number=0;

   while(prev != -1)
   {
      prev = string.indexOf(findString, prev+1);
      tf.setTextFormat(prev, prev + findString.length, formatoSeleccionado);
   }


espero que esto te sirva como guia para hacer algo mas avanzado.
saluti.

Por SinguerInc

0 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 16 Abr 2008 08:09 am
Muchas gracias SinguerInc, voy a probarlo a ver si puedo implementarlo o no, luego te cuento. :)

Sayonara beibis!

Por Tanakin

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Abr 2008 08:52 am
Bueno tras probar un poco el ejemplo que has posteado, el cual agradezco mucho, voy a tratar de ser más específico en lo que me piden hacer.
El tema es que tengo que conseguir pasar una revista pdf a flash. Hago la importación a la escena del pdf y todos los textos los importa en cientos de campos de texto estático y quiero lograr hacer una busqueda en ese texto para luego resaltar la busquedá como en tu ejemplo o de cualquier modo que se vea donde se ha encontrado una coincidencia.

He estado probando con textSnapshot.findText, textSnapshot.setSelected, pero no he logrado nada, no logro seleccionar nada de nada, supongo que hay algo que hago mal.

Código :

var numero:int;

numero = this.textSnapshot.findText(0,"casa",false);

this.textSnapshot.setSelected(numero,numero+4,true);
this.textSnapshot.setSelectColor(0xff0000);


Esto es una prueba en el que intento en un flash con un único texto estático en pantalla, seleccionar de el, la palabra "casa", pero no hay narices. Si pudieras darme algún consejo o alternativa para hacer lo que comento en este mensaje, seria de agradecer. Muchas gracias en cualquier caso, por el tiempo dedicado a leerme. Un saludo!

Sayonara beibis!

Por Tanakin

1 de clabLevel



 

firefox

 

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