LeoBaraldi – Ejemplos Flash, Ejemplos actionscript, Tutoriales Flash, Tutoriales actionscript, actionscript 3, curso de actionscript

Recursos y ejemplos de actionscript, Flash, AIR, Flex, CSS y HTML. Tutoriales de actionscript 2 y actionscript 3

Reemplazar caracteres o palabras en flash

| 10 Comments

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;

Author: LeoBaraldi

Diseñador gráfico y programador en Web, con experiencia profesional en el rubro desde 1998. Experto en diseño de interfaces Frontend y Backend, sitios, portales y dispositivos móviles. Experto en estándares, CSS y HTML, amplios conocimientos en CEO. Desarrollador de sitios multi plataformas, HTML5, CSS3 y JQuery. Experto programador en Adobe Flex, AIR y ActionScript 3.0. Conocimientos en lenguajes como PHP, Javascript y bases de datos MySQL. Profesor de Diseño y Diseño Web en la Escuela Superior de Diseño Aguas de la Cañada, asesor y colaborador para medios gráficos, editoriales y revistas afines. Actualmente Jefe de Producción en Manifesto solutions.

10 Comments

  1. 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');

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

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

  4. 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?

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

  6. 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

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

    en AS2 usaba algo como:

    cadamilisegundos = 20000;
    setInterval(cargar_datos_php, cadamilisegundos);

  8. 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!.

    :)

  9. 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

  10. 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

Deja un comentario

Required fields are marked *.

*