Publicado por: LeoBaraldi
Este prototipo es muy util a la hora de trabajar con contenidos dinámico como cuando conectamos nuestro flash a una base de datos usando por ejemplo un xml.
Muchas veces en este caso si usamos un CDATA para pasar una porción de texto grande vamos a ver que puede que algunas cosas el flash no las interprete bien como por ejemplo un simple "br" un salto de linea.
En estos caso solo reemplazamos nuestro "br" por un newline por ejemplo.
Actionscript:
-
//creamos el prototipo
-
String.prototype.reemplazar = function(termino1, termino2) {
-
var temp_array = this.split(termino1);
-
var new_cadena = "";
-
for (var k = 0; k<temp_array.length; k++) {
-
new_cadena += temp_array[k]+""+termino2;
-
}
-
new_cadena = new_cadena.substring(0, new_cadena.length-termino2.length);
-
return new_cadena;
-
};
-
//en este caso vamos a colocar un texto dentro de un campo
-
//de texto dinamico.
-
//Primero creamos una variable con el contenido del campo de texto
-
cont = texto_txt.text;
-
//Segundo creamos una nueva variable con contentra la variable
-
//anterior mas el prototipo y como parametro le pasamos primero
-
//el texto o caracter a reemplazar y como segundo parametro
-
//le pasamos el texto en si a colocar
-
cont2 = cont.reemplazar("a", " <aqui habia una 'a'> ");
-
//por ultimo volvemos a escribir el nuevo texto en la caja
-
texto_txt.text = cont2;
10 Respuestas
Publicar comentario
19th Junio, 2007 at 3:30 pm
Hola leo.
Te mando un bocadillo de como puedes hacer el reemplazo sin bucles. Tuto en una linea
19th Junio, 2007 at 9:24 pm
Sin palabras!!! muy bueno che!!!
Gracias como siempre Damian!
3rd Septiembre, 2007 at 6:49 pm
Simon esta chida la función hace un muy buen paro, tnks
12th Enero, 2010 at 10:02 pm
tengo este script que recupera dos variables desde un php...
//comienza.
//-- importamos las clases necesarias
import flash.net.*;
import flash.events.*;
import flash.text.TextField;
//-- creamos una instancia de URLLoader para info externa
var loader:URLLoader=new URLLoader();
//-- tipo de info a recibir
loader.dataFormat=URLLoaderDataFormat.VARIABLES;
//-- cual es el archivo que cargaremos
loader.load(new URLRequest("mostrar.php"));
//-- listener para cuando la carga este completa
loader.addEventListener(Event.COMPLETE,carga);
//-- funcion a ejecutarse
function carga(event:Event) {
var loader:URLLoader= URLLoader(event.target);
//-- creamos el campo de texto donde se mostrara la info del php
var texto:TextField=new TextField();
texto.text=String(loader.data.dato1);
var texto1:TextField=new TextField();
texto1.text=String(loader.data.dato2);
texto.autoSize="left";
//-- mostramos el campo de texto
addChild(texto);
texto1.autoSize="left";
//-- mostramos el campo de texto
addChild(texto1);
}
//termina
todo bien, excepto que aunque el fla contiene dos campos de texto bien nombrados, el swf recupera ambas variables en un solo campo y se vuelven ilegibles...algun tip?
14th Enero, 2010 at 3:41 am
las variables estan separadas por &? colocame la cadena de como devuelve el php
14th Enero, 2010 at 2:09 pm
El codigo en php:
echo "&dato2=Al Aire ".$shoutcast->GetServerGenre()."";
echo "&dato1=Titulo ".$shoutcast->GetCurrentSongTitle()."";
La salida desde el php:
dato2=Al Aire lakis desde españa y grecia para todo el mundo&dato1=Titulo Alejandro Sanz & The Corrs - Una noche
Creo que eso es correcto. còmo separo los datos en los campos de texto en flash?...Gracias por responder!!
14th Enero, 2010 at 2:14 pm
Y luego còmo actualizo la info en flash?.
en AS2 usaba algo como:
cadamilisegundos = 20000;
setInterval(cargar_datos_php, cadamilisegundos);
18th Enero, 2010 at 5:11 am
Hola!
Lo resolvi de este modo:
Saludos!.
21st Enero, 2010 at 12:27 am
Excepto que al incluir el timer para actualizar la informacion del swf, algo se desfaza y me manda un error!
Algo de que no se puede convertir un tipo de datos a otro.
Alguna idea?
Gracias una vez mas.
8th Febrero, 2010 at 5:41 pm
Hola, interesante el articulo, ando buscando algo similar para resolver un problema similar. A ver si me puedes dar una manito.
Tengo este codigo que me remplaza caracteres
function searchReplace(block:String, find:String, replace:String):String {
return block.split(find).join(replace);
}
myStr = "<embed src=[]chato[][]chato[][]";
tmp = searchReplace(myStr, "[", "'");
Yo busco remplazar los caracteres "[" y "]" pero solo permite remplazar uno de los dos caracteres, dejandome uno sin remplazar.... hay alguna forma de hacer que ambos sean remplazables?? se puede hacer con la funcion que estoy haciendo?? .
un saludo y gracias