Acortar urls con bit.ly con ActionScript 3.0 en tiempo de escritura

elad . lunes 30 de mayo de 2011. a las 00:28

Ayer contábamos como acortar una url con el más famoso shortener bit.ly y ActionScript 3.0. Continuando un poco con esta línea de post vamos a ver cómo acortar urls mientras el usuario escribe en un campo de texto (para twittear por ejemplo).

Para probar este ejemplo hay que escribir un texto que contenga una url (por ejemplo: http://www.lostiemposcambian.com)


Get Adobe Flash player

Para esta tarea detectamos el cambio en campo de texto mediante addEventListener(Event.CHANGE, change_handler);
y buscamos mediante expresiones regulares las palabras que sean direcciones web (urls) y que no sean direcciones acortados con bit.ly


[...]

function change_handler(event:Event):void
{
       //expresión regular para encontrar una url válida
	var regex:RegExp = /(http[s]?:\/\/[\S]+)\s/ig;

       //obtenemos en un array las palabras que coinciden con la expresión regular
	var urls:Array = text_ta.text.match(regex);
	
	if(urls.length > 0)
	{
		var total:int = urls.length;
		for(var i:int=0; i< total; i++){
                     //si no es una url bit.ly la acortamos...
                     if(urls[i].indexOf("bit.ly") == -1) {
                             shortenerURL(urls[i]);
                     }
		}
     }
}

Donde el método shortenerURL(urls); es prácticamente igual al método que acortaba la url shortenclick_handler en el ejemplo anterior con la diferencia que ahora cuando acabe de acortar la url hará un reemplazando la url larga por la acortada. Para eso nos hemos guardado la url que vamos acortar en la variable url_actual.


[...]
function complete_handler(event:Event):void
{
       //cogemos la url acortada y la limpiamos de saltos de linea
	var shortURL:String = String(event.target.data).split("\n").join("");
	
        //reemplazamos la url larga por la acortada y añadimos un espacio para continuar escribiendo
        text_ta.text = text_ta.text.replace(url_actual, shortURL)+" ";
	info_lb.text = "";
	 
}

De esta forma tenemos una cómoda forma de escribir texto, por ejemplo para twittear, sin tener que estar convirtiendo la url como otra tarea aparte. De esta misma manera lo hace la aplicación de escritorio TweetDeck que sirve para gestionar cuentas de Twitter; esta aplicación esta desarrollada en Adobe Air y ActionScript 3.0

Etiquetas: , , , , , ,

Enviar comentario