asd

9

Jun

Reemplazar caracteres o palabras en flash

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:
  1. //creamos el prototipo
  2. String.prototype.reemplazar = function(termino1, termino2) {
  3.     var temp_array = this.split(termino1);
  4.     var new_cadena = "";
  5.     for (var k = 0; k<temp_array.length; k++) {
  6.         new_cadena += temp_array[k]+""+termino2;
  7.     }
  8.     new_cadena = new_cadena.substring(0, new_cadena.length-termino2.length);
  9.     return new_cadena;
  10. };
  11. //en este caso vamos a colocar un texto dentro de un campo
  12. //de texto dinamico.
  13. //Primero creamos una variable con el contenido del campo de texto
  14. cont = texto_txt.text;
  15. //Segundo creamos una nueva variable con contentra la variable
  16. //anterior mas el prototipo y como parametro le pasamos primero
  17. //el texto o caracter a reemplazar y como segundo parametro
  18. //le pasamos el texto en si a colocar
  19. cont2 = cont.reemplazar("a", " <aqui habia una 'a'> ");
  20. //por ultimo volvemos a escribir el nuevo texto en la caja
  21. texto_txt.text = cont2;

categorias: Prototipos Coment.: 10

10 Respuestas

    Damian Dice:

    Hola leo.
    Te mando un bocadillo de como puedes hacer el reemplazo sin bucles. Tuto en una linea

    Actionscript:
    1. cadena_nueva = mi_cadena.split('cadenaBuscar').join('cadenaReemplazar');

    LeoBaraldi Dice:

    Sin palabras!!! muy bueno che!!!
    Gracias como siempre Damian!

    Yon koter Dice:

    Simon esta chida la función hace un muy buen paro, tnks

    Gabriel Dice:

    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?

    LeoBaraldi Dice:

    las variables estan separadas por &? colocame la cadena de como devuelve el php

    Gabriel Dice:

    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!! :D

    Gabriel Dice:

    Y luego còmo actualizo la info en flash?.

    en AS2 usaba algo como:

    cadamilisegundos = 20000;
    setInterval(cargar_datos_php, cadamilisegundos);

    Gabriel Dice:

    Hola!

    Lo resolvi de este modo:

    Actionscript:
    1. //-- importamos las clases necesarias
    2. import flash.net.*;
    3. import flash.events.*;
    4. import flash.text.TextField;
    5. //-- creamos una instancia de URLLoader para info externa
    6. var loader:URLLoader=new URLLoader();
    7. //-- tipo de info a recibir
    8. loader.dataFormat=URLLoaderDataFormat.VARIABLES;
    9. //-- cual es el archivo que cargaremos
    10. loader.load(new URLRequest("http://estelarisradio.net/mostrar.php"));
    11. //-- listener para cuando la carga este completa
    12. loader.addEventListener(Event.COMPLETE,carga);
    13. //-- funcion a ejecutarse
    14. function carga(event:Event) {
    15. var loader:URLLoader= URLLoader(event.target);
    16. var intervalo:Timer = new Timer(1000, 0);
    17. intervalo.addEventListener(TimerEvent.TIMER, carga);
    18. intervalo.start();
    19. //-- creamos el campo de texto donde se mostrara la info del php
    20. //-- creamos el campo de texto donde se mostrara la info del php
    21. var texto:TextField = new TextField();
    22. texto.type = TextFieldType.DYNAMIC;
    23. texto.border = true;
    24. texto.height = 20;
    25. texto.width = 300;
    26. texto.x = 0;
    27. texto.y = 0;
    28. texto.text=String(loader.data.dato2);
    29. addChild(texto);
    30.  
    31. var texto2:TextField = new TextField();
    32. texto2.type = TextFieldType.DYNAMIC;
    33. texto2.border = true;
    34. texto2.height = 20;
    35. texto2.width = 300;
    36. texto2.x = 310;
    37. texto2.y = 0;
    38. texto2.text=String(loader.data.dato1);
    39. addChild(texto2);
    40. }

    Saludos!.

    :)

    Gabriel Dice:

    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.

    :D

    julfit0 Dice:

    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

Publicar comentario

IMPORTANTE: Los comentarios son moderados. A la brevedad seran subidos.

Leonardo David Baraldi

Leonardo Baraldi

Nací en Villa Carlos Paz, tengo 33 años y me dedico a desarrollos para la web desde el año 99, preferentemente en las aéreas de ActionScript y CSS. Trabajo para la firma Manifesto Solutions como jefe de producción.

ultimos post

Usa Firefox es mejor che!!!
Copyright © 2008 LeoBaraldi. Todos los derechos reservados.
Designed by LeoBaraldi and powered by Wordpress | RSS Feed
Love WordPress
Manifesto
Manifesto solutions
Sponsort Oficial de LeoBaraldi