May 07
Flash Player 10 además de sus mejoras de filtros y 3d, ha modificado su seguridad. Entre las cuales destaco que las clases FileReference (Subir o descargar Archivos) y Clipboard (Controlar datos a copiar en el portaPapeles) ahora requieren que sean desencadenados por un evento realizado por el usuario. Ya sea la clase MouseEvent o KeyboardEvent.
Esto trajo como consecuencia que muchos sitios comenzarán a tener problemas. (Entre los cuales me incluyo). El problema surge, cuando se necesita que la descarga sea de varios archivos.
Antes esto se podía realizar lanzando los métodos de Descarga uno detrás de otro a través de nuestro código. Pero esto no es más posible, es necesario que el usuario haga click o presione una tecla, por cada archivo a descargar. Cosa bastante molesta para el usuario final.
Cabe aclarar que este cambio de seguridad solo afecta al Flash Player 10 del navegador. Esto no afecta a una aplicación Air
Admito que lo primero que intente realizar es crear mi propio evento que despache un objeto MouseEvent. Pero esto no funcionó. Ya que el player recorre el historial, y todo debe ser originado por un evento real de usuario.
Entonces Don Adobe, le pido que se solidarice y realice un método para la clase FileReferenceList para que podamos realizar descargas múltiples. Obviamente una vez autorizado por el usuario a través de un Click del ratón o bien presionando una tecla.
Para leer más sobre los cambios en la seguridad de Flash Player 10, les dejo un link interesante.
Understanding the security changes in Flash Player 10
Sep 27
La documentación de Flash CS3 realizado por Adobe dice:
ActionScript 3.0 permite que las llamadas a funciones incluyan más parámetros que los definidos en la definición de la función, pero generará un error del compilador en modo estricto si el número de parámetros es menor que el número de parámetros requeridos. Se puede utilizar la matriz aspect del objeto arguments para acceder a cualquier parámetro pasado a la función, independientemente de si ese parámetro está definido en la definición de la función. Ir a la documentación.
Cosa que es un ERROR. Al verificar en la documentación en inglés, pensando que ha sido una mala traducción, descubro que ha sido corregido en Octubre del 2007.
Documentación en Inglés
¡Gracias Adobe! Siempre teniendo en cuenta a todos los Hispanos parlantes.
En modo estricto NO es posible pasar una cantidad de parámetros que no coincida con los declarados como necesarios.
Para esto, ahora existe el parámetro …resto. Donde se almacena todos los parámetros extras enviados a una función.
Ago 24
La clase Efectos es una clase muy simple, la cual extiende de la clase MovieClip. Esto permite utilizarla como clase base o bien extender de esta para incorporar métodos nuevos a un objeto cualquiera. Los efectos para esta versión son:
fadeOut (ocultar progresivamente)
fadeIn (enceder progresivamente)
fadeTo (un transición entre el valor alpha actual y un valor deseado)
rebotar (un rebote simple)
trasladar (Mover el objeto a otra posición)
Para la gente que no escribe clases aun, pueden utilizarla como clase base de un MovieClip que tengan en la biblioteca. Pare ello abren la ventana de vinculación.

Para abrir esta ventana, deben apretar botón derecho sobre el movieClip en la biblioteca y luego eligen la opción Vinculación (Linkage en inglés).
Una vez ahí, deben configurar como clase base del movieClip: as3.toronana.efectos.Efectos para que ese objeto contenga todos los métodos de los efectos.
Y eso es todo. Simple ¿no?
read all »
Ago 13
Para evitar tener que explicar con muchos detalles cada clase que publique. He generado la documentación de las mismas utilizando para esto ASDoc.
ASDoc es una herramienta de líneas de comandos que se puede utilizar para crear API de referencia de lenguajes en páginas HTML de las clases. El equipo de Adobe Flex ha utilizado esta herramienta para generar las referencias de ActionScript y Adobe Flex.
Para ver la Documentación de las clases publicadas.
http://as.toronana.com.ar/documentacion/
Ago 04
En un proyecto que trabaje a fines del año pasado, me surgió la necesidad de realizar algunas operaciones con matrices. Y para no tenerlas por separado las fui incorporando a una clase que denomine “Matriz”.
La clase Matriz es una clase que he extendido de la clase Array, (es decir tiene todos los métodos y propiedades de un array) a la cual le he agregado 6 nuevos métodos.
agregar();
public function agregar(matriz:Array):void
Agrega los elementos de la matriz pasada por parámetro a la matriz actual.
Parámetros
- matriz:Array — Matriz de elementos que se desean agregar a la matriz actual
crearMatrizNumerica ()
public function crearMatrizNumerica(desde:int, hasta:int):void
Agrega valores numéricos enteros desde y hasta los valores pasados por los parámetros.
Parámetros
- desde:int— Numero entero desde donde inicia la matriz numérica.
- hasta:int— Numero entero hasta donde llega la matriz numérica.
desordenar()
public function desordenar():void
Desordena de manera aleatoria los elementos de la matriz.
enviarAlInicio()
public function enviarAlInicio(indice:uint):void
Envía el elemento del indice pasado por parámetro al primer lugar de la matriz.
Parámetros
- indice:uint— Valor entero positivo que corresponde al número de indice del elemento a mover.
enviarAlUltimo()
public function enviarAlUltimo(indice:uint):void
Envía el elemento del indice pasado por parámetro al ultimo lugar de la matriz
Parámetros
- indice:uint— Valor entero positivo que corresponde al número de indice del elemento a mover.
vaciar()
public function vaciar():void
Elimina todos los elementos de la matriz
read all »
Ago 02
La clase CargarTexto, como el nombre dice, sirve para cargar una archivo de texto. Ahora también puede ser utilizada para cargar un xml, un jSon, un HTML o cualquier archivo que sea de texto. Esta clase viene acompañada con la clase EventCargarTexto. La cual maneja los eventos de Carga Completa y algunos errores que puedan surgir.
Paquete: as3.toronana.cadenas
Clase: public class CargarTexto
Herencia: URLLoader
Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9
Métodos Públicos
addVariable(nombreVariable:String, valor:String):void
Agrega una variable y su valor para enviar.
- nombreVariable:String - Nombre de la variable que se enviará
- valor:String - Valor asignado a la variable a enviar
cargar(url:String, metodo:String = “POST”):void
Envía variables en el caso que existan y carga el texto dado por el parametro url.
- url:String - Dirección absoluta o relativa donde se encuentra el archivo a cargar
- metodo:String - Método por el cual se enviarán las variables en caso de existir. (Por defecto POST. Se aconseja utilizar las constantes GET y POST de la clase URLRequestMethod)
read all »
Jul 31
ParsearURL, es una clase la cual sirve para buscar en un texto direcciones http o ftp (Por ejemplo http://misitio.com) y agregarle o quitarle la etiqueta de vínculo <a>. (Siendo el resultado obtenido: <a href=’http://misitio.com’>http://misitio.com</a>)
Paquete: as3.toronana.cadenas
Clase: public final class ParsearURL
Herencia: no posee
Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9
La clase ParsearURL contiene 2 métodos estáticos y deben llamarse utilizando la sintaxis ParsearURL.metodo(parametros).
Métodos Públicos
textoToVinculo(texto:String, tagExtra:String=”u”):String
[static] Busca en el texto direcciones http y ftp y devuelve todo el texto con las direcciones vinculadas con la etiqueta<a>
Parámetros:
- texto:String - Texto donde se buscarán las direcciones http:// y ftp://
- tagExtra:String - Etiqueta html extra para agregar a las direcciones encontradas. (Por defecto es “u”)
vinculoToTexto(texto:String, tagExtra:String=”u”):String
[static] Busca en el texto vínculos http y ftp y devuelve todo el texto en forma plana.
Parámetros:
- texto:String - Texto donde se buscarán los vínculos http:// y ftp://
- tagExtra:String - Etiqueta html extra para quitar a los vínculos encontrados. (Por defecto es “u”)
read all »
Jul 30
Una de las cosas que he leido le reclaman a Adobe en infinidad de sitios de discusión, es haber eliminado el evento de ReleaseOutside. Este evento fue muy utilizado en versiones anteriores de ActionScript, al momento de arrastrar objetos, ya que muchas veces el puntero de mouse se salia del área del objeto que se arrastra dejando permanentemente arrastrando el objeto.
A mi entender, ReleaseOutSide ha sido eliminado debido al mejorado comportamiento de los eventos. Algunos eventos ahora tienen tres fases, lo cual permite que un evento se pueda propagar desde el escenario hacia el Objeto, y del Objeto hacia el escenario nuevamente.
Entonces el secreto de esto, es crear y eliminar un escuchador al Stage de manera estratégica. Reproduciendo así el efecto del evento ReleaseOutSide.
A las pruebas me remito.
read all »
Jul 29
Para los que alguna vez hallan programado en AS2 y estén dando el salto a AS3, les recomiendo se descarguen el CheatSheet sobre como migraron las acciones de ActionScript 2 a ActionScript 3. Esto les ayudará mucho, ya que puedes buscar la acciones que utilizaban antes, y puedes ver directamente cual es su equivalente o bien si fue removida, sin tener que ponerse a buscar en el manual.
Un CheatSheet, es algo así como un machete (como llamamos en Argentina), el cual sirve para recordar la sintaxis del lenguaje, parámetros de las funciones, palabras clave, etc.

Captura del CheatSheet de Migración de AS2 a AS3
read all »
Jul 28
Bien, aquí explicaré dos métodos posibles para probar los códigos de ejemplo que iré publicando en este Blog. Cualquiera de los dos métodos es válido, solo dependerá de vos cual deseas utilizar.
Cabe mencionar que también puede ser aplicado a los ejemplos provistos en los Manuales de Adobe.
- Con Flash CS3.
Crear un nuevo Archivo de ActionScript, y pegar el código. Luego grabarlo con el nombre Main.as.
(sugerencia: Para copiar y pegar el código sin problemas, copiarlo desde la opción ver Texto Plano , que se encuentra arriba a la derecha de todas las cajas de código)
Luego crear un nuevo archivo Flash (ActionScript 3) y grabarlo en el mismo directorio donde acabamos de grabar el archivo Main.as.
Ahora debemos abrir las propiedades (Ctrl + F3) y en la opción Document Class (Clase del Documento) escribir: Main (Cuidado: Se debe escribir sin la extensión as). Aquí ya podemos publicar el swf presionando Ctrl + Enter.

Declarar la clase del Documento en el Panel de Propiedades
- Con FlashDevelop.
Para probar el código en FlashDevelop lo que debemos realizar es crear un Nuevo Proyecto de ActionScript. En el menú Project -> New Project.
Luego elejimos la opción Default Project (Proyecto por defecto) de las opciones de ActionScript 3.

Ventana de Nuevo Proyecto
Una vez creado el proyecto, dentro del directorio llamado src, encontraremos la clase base llamada Main.as. Al cual debemos reemplazar todo el contenido por el código del ejemplo.
Aquí ya podremos compilar el SWF presionando F5.
(Sugerencias: Compilar SWF con FlashDevelop)